一次在MySQL中删除一张表或一条数据的时候,出现错误:
[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...)
各种查阅后发现这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。
PS:请谨慎使用!
以下是禁用和启用外键的SQL语句:
1
|
SET
FOREIGN_KEY_CHECKS
=
0;
|
1
|
SET
FOREIGN_KEY_CHECKS
=
1;
|
在需要强制操作时,我们可以先禁用外键约束,然后在结束后才重新启用外键约束。
命令窗口下查看当前外键约束状态的命令
1
|
SELECT
@@FOREIGN_KEY_CHECKS;
|