MySQL - 级联更新有效,但级联删除不起作用



有两个表;proizvodi(父)表和normaiv(子表),关系1:N。

父表上的主键是

字段 Sifra,子表上的主键是 SifraProizvoda。当我在父表中进行更新时,更改会反映在子表中,但是如果我尝试删除父表中的某些内容,则会出现错误:

/* SQL 错误 (1451): 无法删除或更新父行: 外键约束失败 ( racuni .cijenapro , 约束 FK_cijenapro_proizvodi 外键 ( SifraProizvoda ) 引用 proizvodiSifra ) 删除 更新级联时不执行任何操作) */

这是表格链接的结构

我做错了什么?

你也应该有一个ON DELETE CASCADEON UPDATE CASCADE。您现在拥有的是ON DELETE NO ACTION因此外键关联会阻止您删除父级,因为它不需要孤立的子项。如果您也有ON DELETE CASCADE,则父条目和子条目都将被删除。您可以使用ALTER TABLEON DELETE CASCADE添加到表中。您必须先删除现有约束,因为ON UPDATE CASCADEON DELETE CASCADE只允许一个约束

最新更新