繁体   English   中英

自引用父子表上的MySQL级联删除?

[英]MySQL cascade delete on self-referencing parent-child table?

我有这个MySql数据库表:

tbl_project
id
project_name
parent_id

如果项目是“父”,则parent_id0

现在我正在尝试添加自引用外键

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM