MySQL データベースの名前を変更する (スキーマ名を変更する) にはどうすればよいですか?
P粉320361201
P粉320361201 2023-08-23 13:09:22
0
2
563
<p>MySQL データベースの名前をすばやく変更する (スキーマ名を変更する) にはどうすればよいですか? </p> <p>通常はデータベースをダンプし、新しい名前で再インポートします。非常に大規模なデータベースの場合、これはオプションではありません。どうやら <code>RENAMED {DATABASE|SCHEMA} db_name TO new_db_name;</code> は何か悪いことをしており、いくつかのバージョンにしか存在せず、全体的に悪い考えです。 </p> <p>これは、MyISAM とはまったく異なるコンテンツを保存する InnoDB で使用する必要があります。 </p>
P粉320361201
P粉320361201

全員に返信(2)
P粉662089521

次の簡単なコマンドを使用します:

リーリー

または、I/O を削減するには、@Pablo Marin-Garcia が提案したように次を使用します:

リーリー
いいねを押す +0
P粉949190972

#InnoDB の場合、次のことが機能するようです: 新しい空のデータベースを作成し、各テーブルの名前を順番に新しいデータベースに変更します: リーリー

後で権限を調整する必要があります。

シェルでスクリプトを記述するには、次のいずれかの方法を使用できます:

リーリー ###または### リーリー

コメント:


option

-p
    とパスワードの間にはスペースを入れません。データベースにパスワードがない場合は、
  • -u username -ppassword の部分を削除します。 テーブルにトリガーがある場合、上記の方法を使用して別のデータベースに移動することはできません (
  • Trigger Error Schema
  • エラーが発生します)。この場合は、従来の方法を使用してデータベースのクローンを作成し、古いデータベースを削除します。

    mysqldump old_db | mysql new_db

    ストアド プロシージャがある場合は、それをコピーできます:

  • mysqldump -R old_db | mysql new_db

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート