zerkms Lösung hat bei mir nicht funktioniert. Ich musste das information_schema
angeben Datenbank, um die Tables
abfragen zu können Tabelle.
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';
Bearbeiten:
Die Abfrage wurde optimiert, um RENAME TABLE nur einmal aufzurufen. Etwas, auf das ich gestoßen bin, war die Tatsache, dass die verkettete Ausgabe bei 341 Zeichen abgeschnitten wurde. Dies kann gelöst werden (sofern Ihr Server dies zulässt), indem Sie die MySQL-Variable group_concat_max_len
setzen auf einen höheren Wert:
SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.