Rozwiązanie zerkms nie działało dla mnie. Musiałem określić information_schema
bazy danych, aby móc odpytywać Tables
tabela.
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';
Edytuj:
Zoptymalizowano zapytanie, aby wywołać RENAME TABLE tylko raz. Coś, na co wszedłem, to fakt, że połączone wyjście zostało obcięte do 341 znaków. Można to rozwiązać (jeśli pozwala na to Twój serwer), ustawiając zmienną MySQL group_concat_max_len
do wyższej wartości:
SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.