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';
編集:
RENAMETABLEを1回だけ呼び出すようにクエリを最適化しました。私が立ち入ったのは、連結された出力が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.