その危険すぎる機能ゆえに、存在を消された幻のコマンド
RENAME DATABASE
でも、どうしてもデータベース名変えたい!っていうケース、あると思います
dumpするやり方
CREATE DATABASE new_db;
して
mysqldump ... -d old_db > old_db.dump
からの
mysql ... -d new_db < old_db.dump
とどめに
DROP DATABASE old_db;
で、実現できます。
が、DBが巨大であればあるほど時間かかりますし、現実的ではなくなります
dumpしないやり方
CREATE DATABASE new_db;
して
RENAME TABLE old_db.table_name TO new_db.table_name
を、全テーブル繰り返す
です!
RENAME ... TO ...
は以下のsqlで作成できます
(SHOW TABLES
とかで取ってきてもよし)
SELECT DISTINCT CONCAT(
'RENAME TABLE ',
t.table_schema,'.', t.table_name,
' TO ',
"new_db", '.', t.table_name,
';' )
as rename_table
FROM information_schema.tables as t WHERE t.table_schema="old_db";