以下是我的表格:
pk_parent_id fk_parent_id fk_user_id timestamp
1 NULL 32 2018-01-07 18:42:03
2 1 42 2018-01-07 18:42:17
3 2 57 2018-01-07 18:42:23
4 3 74 2018-01-07 18:42:47
5 4 93 2018-01-07 18:43:09
在上表中,fk_parent_id
具有其父记录的值。即fk_parent_id = 3
表示pk_parent_id = 3
是此记录的父级的记录。
如果父行被删除,我想删除所有子行。
即如果我删除pk_parent_id
为4
的行,则其子项必须删除fk_parent_id = 4
(记录5)。
如果删除pk_parent_id为3的行,则记录3,4,并且必须删除5(4是3的子项,5是4的子项)。
我想知道在MySql查询中是否可行,如果是,那么如何。或者还有其他方法可以继续。
提前致谢。
答案 0 :(得分:0)
我建议在表格上设置一个删除触发器,它将嵌套一个嵌套的删除链:
CREATE TRIGGER tbl AFTER DELETE on tbl
FOR EACH ROW
BEGIN
DELETE FROM tbl
WHERE tbl.fk_parent_id = old.pk_parent_id;
END
old是要删除的数据。你将用你的表名替换tbl。