在MySQL 中停用外鍵約束以進行臨時資料操作
在MySQL 中,外鍵約束透過防止表之間的關係不一致來確保資料完整性。然而,這些約束有時會阻礙快速的資料操作。
問題:
在 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 指令或將FOREIGN_KEY_CHECKS 變數設為0.
使用DISABLE KEYS:
DISABLE KEYS
此指令停用目前會話的所有外鍵約束。
使用 SET FOREIGN_KEY_CHECKS 變數:
SET FOREIGN_KEY_CHECKS=0;
此指令將全域 FOREIGN_KEY_CHECKS 變數設為 0,停用所有外鍵限制。
重要:執行所需資料後操作時,請記住透過將 FOREIGN_KEY_CHECKS 設定回 1 來重新啟用外鍵約束:
SET FOREIGN_KEY_CHECKS=1;
以上是如何暫時停用 MySQL 中的外鍵約束以進行資料操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!