MySQLでRENAME DATABASEするワンライナー
MySQLに"RENAME DATABASE"構文は存在しないため、"RENAME TABLE"構文で全テーブルをリネームする手法が取られるようです。
環境
- MySQL 5.7
ワンライナー
- new_db_name、old_db_nameを適宜置き換えてください。
- パスワードは、お好みの方法で指定してください。MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.1.2.1 パスワードセキュリティーのためのエンドユーザーガイドライン
$ mysql -uroot -p -e "select distinct concat('rename table ', t.table_schema, '.', t.table_name, ' to ', 'new_db_name', '.', t.table_name, ';') as rename_table from information_schema.tables as t where t.table_schema='old_db_name';" -N -s | mysql -uroot -p