[MySQL]外部キー制約を一時的に無効にする方法

MySQL にデータを一括で登録する際に外部キーが設定されていると、データの投入順によっては外部キー制約エラーが発生することがあり、データの投入順を外部キーの設定を確認しながら決めなければならず、データ投入が煩雑になることがあります。そういったときはデータ投入時のみ外部キー制約を無効にすることで外部キー制約エラーを気にすることなくデータを投入できるようになります。

前提条件

  • MySQL : 5.6

FOREIGN_KEY_CHECKS

外部キー制約を無効にするには下記コマンドを実行します。

SET FOREIGN_KEY_CHECKS=0;

INSERT ... # データ投入用クエリ

外部キー制約を有効にしたい場合は下記コマンドを実行します。

SET FOREIGN_KEY_CHECKS=1;

最後に

外部キー制約を無効にするとデータ投入の際にデータの整合性を維持できなくなる可能性もあるので、その点は注意が必要ですね。データの整合性維持に問題がないことが確認できる状況であれば今回のように外部キー制約を無効にしてデータ投入しても良いかもしれませんね。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です