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/