sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg ændre præfikser i alle tabeller i min MySQL DB?

zerkms løsning virkede ikke for mig. Jeg var nødt til at angive information_schema database for at kunne forespørge Tables tabel.

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

Rediger:

Optimerede forespørgslen til kun at kalde RENAME TABLE én gang. Noget, jeg gik ind i, var det faktum, at det sammenkædede output blev afkortet til 341 tegn. Dette kan løses (hvis det er tilladt af din server) ved at indstille MySQL-variablen group_concat_max_len til en højere værdi:

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


  1. Høj tilgængelighed på et begrænset budget - implementering af en minimal MySQL Galera Cluster med to knudepunkter

  2. Kan ikke oprette linket server - sql server og mysql

  3. Sådan tilføjer du tid til en Datetime-værdi i MySQL

  4. Tilgang til flere MySQL-forespørgsler med Node.js