ホームページ  >  に質問  >  本文

MySQL データベースの名前を変更する (スキーマ名を変更する) にはどうすればよいですか?

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

全員に返信(2)返信します

  • P粉662089521

    P粉6620895212023-08-24 11:11:03

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

    リーリー

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

    リーリー

    返事
    0
  • P粉949190972

    P粉9491909722023-08-24 10:59:25

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

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

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

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

    コメント:


    option

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

      mysqldump old_db | mysql new_db

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

    • mysqldump -R old_db | mysql new_db

      <代码>

      返事
      0
  • キャンセル返事