MySQL データベースの名前を変更する (スキーマ名を変更する) にはどうすればよいですか?
P粉320361201
2023-08-23 13:09:22
<p>MySQL データベースの名前をすばやく変更する (スキーマ名を変更する) にはどうすればよいですか? </p>
<p>通常はデータベースをダンプし、新しい名前で再インポートします。非常に大規模なデータベースの場合、これはオプションではありません。どうやら <code>RENAMED {DATABASE|SCHEMA} db_name TO new_db_name;</code> は何か悪いことをしており、いくつかのバージョンにしか存在せず、全体的に悪い考えです。 </p>
<p>これは、MyISAM とはまったく異なるコンテンツを保存する InnoDB で使用する必要があります。 </p>
次の簡単なコマンドを使用します:
リーリーまたは、I/O を削減するには、@Pablo Marin-Garcia が提案したように次を使用します:
リーリー#InnoDB の場合、次のことが機能するようです: 新しい空のデータベースを作成し、各テーブルの名前を順番に新しいデータベースに変更します: リーリー
後で権限を調整する必要があります。リーリー ###または### リーリー
コメント:
option
-pとパスワードの間にはスペースを入れません。データベースにパスワードがない場合は、- -u username -ppassword
Trigger Error Schema- エラーが発生します)。この場合は、従来の方法を使用してデータベースのクローンを作成し、古いデータベースを削除します。
- mysqldump -R old_db | mysql new_db
の部分を削除します。
テーブルにトリガーがある場合、上記の方法を使用して別のデータベースに移動することはできません (
mysqldump old_db | mysql new_db
ストアド プロシージャがある場合は、それをコピーできます: