sql >> Databáze >  >> RDS >> Mysql

Jak mohu změnit předpony ve všech tabulkách v mé databázi MySQL?

řešení zerkms mi nefungovalo. Musel jsem zadat information_schema databáze, aby bylo možné dotazovat se Tables tabulka.

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';

Upravit:

Optimalizovaný dotaz tak, aby volal RENAME TABLE pouze jednou. Něco, do čeho jsem šel, byla skutečnost, že zřetězený výstup byl zkrácen na 341 znaků. To lze vyřešit (pokud to váš server umožňuje) nastavením proměnné MySQL group_concat_max_len na vyšší hodnotu:

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


  1. Jak seřadit řádky podle součtu skupiny v SQL

  2. Jak se mohu připojit k serveru SQL Server pomocí integrovaného zabezpečení s ovladačem JDBC?

  3. Jak zkontrolovat databázi Oracle pro dlouho běžící dotazy

  4. Jak v Entity Framework 5 vyjádřím vztah typu has many?