sql >> データベース >  >> RDS >> Mysql

外部キー参照を更新せずにInnoDBテーブルの名前を変更しますか?

    古い質問ですが、次の方法が考えられます。基本的に、テーブルの名前を変更するのではなく、データを移動します。もちろん、新しいデータが外部キールールに準拠していることを確認する必要があります。

    SET foreign_key_checks = 0;
    CREATE TABLE IF NOT EXISTS foo_old LIKE foo;
    INSERT INTO foo_old SELECT * FROM foo;
    TRUNCATE foo;
    INSERT INTO foo SELECT * FROM foo_new;
    

    これを1つのクエリとして実行して、foreign_key_checksがすべてに適用されるようにしてください。これがお役に立てば幸いです。



    1. PHP、ORM、MSSQL、Unicode、これらを一緒に機能させることは可能ですか?

    2. クエリで日付形式を使用する方法は?

    3. Oracleの複数の行の列値を連結するSQLクエリ

    4. サブクエリカーディナリティ推定のバグ