虛假外鍵約束失敗
嘗試從資料庫中刪除名為區域的表時,遇到錯誤訊息,指示外鍵約束失效。儘管刪除了所有其他與區域有外鍵關係的表,但約束仍然存在。
可能的原因
InnoDB,資料庫使用的儲存引擎,通常不允許外鍵引用目前模式之外的表。因此,令人費解的是為什麼外鍵約束仍然阻止區域表的刪除。
解決方案
進一步調查,發現某些資料庫工具,例如 MySQL 查詢瀏覽器或 phpMyAdmin,為每個查詢開啟一個新連線。此行為可防止更改在多個查詢之間傳播。要解決此問題,需要在單一查詢中執行所有 drop 語句:
SET FOREIGN_KEY_CHECKS=0; -- Disable foreign key checks DROP TABLE my_first_table_to_drop; DROP TABLE my_second_table_to_drop; SET FOREIGN_KEY_CHECKS=1; -- Re-enable foreign key checks
停用外鍵檢查允許刪除涉及外鍵關係的表,而不會觸發約束錯誤。隨後重新啟用外鍵檢查可確保未來操作資料庫的完整性。
以上是為什麼無法使用多個查詢刪除具有外鍵約束的表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!