1. ホーム
  2. mysql

[解決済み] MySQLで外部キー制約を一時的に無効にするにはどうすればよいですか?

2022-03-14 11:47:25

質問

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

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

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()

コンストレイントを一時的に無効にして、とにかく削除することは可能でしょうか?

解決方法は?

試す DISABLE KEYS または

SET FOREIGN_KEY_CHECKS=0;

を確認してください。

SET FOREIGN_KEY_CHECKS=1;

の後です。