MySQL - 级联更新有效但级联删除无效

MySQL - Cascade update works but cascade delete doesn't

有两个table; proizvodi (parent) table, 和 normativ (child table), 关系 1:N.

parent table 上的主键是字段 Sifra,child table 上的主键是 SifraProizvoda。 当我在 parent table 中进行更新时,更改会反映在 child table 中,但是如果我尝试删除 parent table 中的内容,我得到错误:

/* SQL Error (1451): Cannot delete or update a parent row: a foreign key constraint fails (racuni.cijenapro, CONSTRAINT FK_cijenapro_proizvodi FOREIGN KEY (SifraProizvoda) REFERENCES proizvodi (Sifra) ON DELETE NO ACTION ON UPDATE CASCADE) */

这里是tables的结构link

我做错了什么?

除了ON UPDATE CASCADE,你还应该有一个ON DELETE CASCADE。你现在拥有的是 ON DELETE NO ACTION 所以外键关联阻止你删除父项,因为它不想要孤儿。如果您也有 ON DELETE CASCADE,则父条目和子条目都将被删除。您可以使用 ALTER TABLEON DELETE CASCADE 添加到 table。您必须先删除现有约束,因为 ON UPDATE CASCADEON DELETE CASCADE

只允许一个约束