MYSQL 5.1:2个表(parent,child);子级中的FK链接到父级的Primary。

当我转到mysql命令行并对父级执行删除操作时。
它允许我删除。

当我在MySQL 5.6上进行相同测试时。我收到我期望的错误“无法删除或更新父行:外键约束失败”。

这怎么可能呢? MySQL为什么不执行我的外键约束?

还有一点,这两个表都是复制设置的一部分。这两个表都被复制到不同盒子上另一台数据库服务器上的相似空间。

最佳答案

您必须将外键设置为ON DELETE CASCADE。这意味着删除父级会强制子级删除自己。您得到的错误是因为外键阻止父级删除自身,因为子级无法删除自身。

CONSTRAINT `child_table`
    FOREIGN KEY (`parent_id`)
    REFERENCES `parent_table` (`id`)
    ON DELETE CASCADE ON UPDATE CASCADE

关于mysql - 当我从父级删除一行时,MySQL 5.1没有强制执行FK约束,,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27167671/

10-14 13:48
查看更多