MySQLの制約を一時的に無効にすることは可能ですか?
2つのDjangoモデルがあり、それぞれに他のモデルへのForeignKeyがあります。モデルのインスタンスを削除すると、ForeignKey制約のためにエラーが返されます。
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()
一時的に制約を無効にして、とにかく削除することは可能ですか?
ON DELETE SET NULL
どうなりますか?それでも同様のことができ、キーのチェックをオンまたはオフにする必要はありません。