在子行删除父级删除CASCADE?

时间:2012-11-17 00:45:21

标签: mysql sql cascade cascading-deletes

我有3张桌子。 最后两个表在同一个字段上有第一个外键。 两个外键都设置为UPDATE CASCADE,DELETE CASCADE。 当我删除第二个表中的子行时,第一个表中的父行保持不变。 但是当我删除第三个表中的子行时,表中的第一行被删除了!

外键的表现不应该和两个女儿一样吗?

1 个答案:

答案 0 :(得分:1)

我的猜测是表2使用MyISAM表(不支持外键),而其他两个表使用InnoDB引擎(支持外键)。

From the documentation

  

外键关系涉及包含中心数据值的父表,以及具有指向其父级的相同值的子表。 FOREIGN KEY子句在子表中指定。 父表和子表必须都是InnoDB表。它们不能是TEMPORARY表。