Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да променя префиксите във всички таблици в моята MySQL DB?

Решението на zerkms не работи за мен. Трябваше да посоча information_schema база данни, за да може да прави заявка за Tables таблица.

SELECT 
    CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`')) AS q
FROM 
    `information_schema`.`Tables` WHERE TABLE_SCHEMA='test';

Редактиране:

Оптимизирана заявката за извикване на RENAME TABLE само веднъж. Нещо, в което влязох, беше фактът, че конкатенираният изход беше съкратен на 341 знака. Това може да бъде решено (ако е позволено от вашия сървър) чрез задаване на променливата MySQL group_concat_max_len на по-висока стойност:

SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Улавяне на изключение за дублиран запис

  2. АКТУАЛИЗИРАНЕ или ВМЕСВАНЕ на MySQL Python

  3. password_hash, password_verify, MySQL неразбиране?

  4. Каква е най-добрата производителност за извличане на MySQL EAV резултати като релационна таблица

  5. Как да създадете избрани динамични полета от таблица в mysql?