一、描述
Mysql中的FOREIGN_KEY_CHECKS是用來啟動和關閉外鍵約束的方法。
二、錯誤
在MySQL中刪除一張表或一條數據的時候,提示以下錯誤:
[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...)
三、原因
這是因為MySQL中設置了foreign key關聯,造成無法更新或刪除數據。
四、解決方法
可以通過設置FOREIGN_KEY_CHECKS避免這種情況。執行SET FOREIGN_KEY_CHECKS=0;禁用外鍵約束。刪除數據后可以在開啟外鍵約束:SET FOREIGN_KEY_CHECKS=1;比如:
SET FOREIGN_KEY_CHECKS = 0; DELETE FROM TABLE_NAME_; SET FOREIGN_KEY_CHECKS = 1;
五、相關命令
查看當前FOREIGN_KEY_CHECKS的值可用如下命令: SELECT @@FOREIGN_KEY_CHECKS;