一次在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; |
发布评论