MySQL で外部キー制約を一時的に無効にするにはどうすればいいですか? 質問する

MySQL で外部キー制約を一時的に無効にするにはどうすればいいですか? 質問する

MySQL で制約を一時的に無効にすることは可能ですか?

2 つの Django モデルがあり、それぞれがもう 1 つのモデルへの外部キーを持っています。モデルのインスタンスを削除すると、外部キー制約のためにエラーが返されます。

cursor.execute("DELETE FROM myapp_item WHERE n = %s", n)
transaction.commit_unless_managed()  #a foreign key constraint fails here

cursor.execute("DELETE FROM myapp_style WHERE n = %s", n)
transaction.commit_unless_managed()

一時的に制約を無効にして削除することは可能ですか?

ベストアンサー1

試すDISABLE KEYS

SET FOREIGN_KEY_CHECKS=0;

必ず

SET FOREIGN_KEY_CHECKS=1;

後。

おすすめ記事