如何使用MySql

时间:2018-01-07 17:46:13

标签: php mysql

以下是我的表格:

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_id4的行,则其子项必须删除fk_parent_id = 4(记录5)。

如果删除pk_parent_id为3的行,则记录3,4,并且必须删除5(4是3的子项,5是4的子项)。

我想知道在MySql查询中是否可行,如果是,那么如何。或者还有其他方法可以继续。

提前致谢。

1 个答案:

答案 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。