[英]MySQL cascade delete on self-referencing parent-child table?
我有这个MySql数据库表:
tbl_project
id
project_name
parent_id
如果项目是“父”,则parent_id
为0
。
现在我正在尝试添加自引用外键
CONSTRAINT `FK_tbl_project_tbl_project` FOREIGN KEY (`parent_id`) REFERENCES `tbl_project` (`id`) ON DELETE CASCADE
当我尝试插入新记录时
SQL Error (1452): Cannot add or update a child row: a foreign key constraint fails (mydbname.#sql-3539_d7d, CONSTRAINT FK_tbl_project_tbl_project FOREIGN KEY (parent_id) REFERENCES tbl_project (id) ON DELETE CASCADE)
基本上我只想在删除父项时删除所有子项。 我在这里错过了什么?
当您在新行的parent_id列中输入任何值时,外键要求存在id具有该值的行,因为这是外键的工作方式。
如果要使用具有自引用关系的外键,则应该对没有父引用的行的parent_id
使用NULL而不是0。 外键忽略NULL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.