Php 内部表级联删除
我有下表:Php 内部表级联删除,php,mysql,sql,Php,Mysql,Sql,我有下表: id name parent_id 1 node1 0 2 node2 1 3 node3 1 4 node4 2 5 node5 2 6 node6 5 . . . . . . . . . 它可以显示如下内容: node1--->node2--->node4 |
id name parent_id
1 node1 0
2 node2 1
3 node3 1
4 node4 2
5 node5 2
6 node6 5
. . .
. . .
. . .
它可以显示如下内容:
node1--->node2--->node4
| |
| --->node5--->node6
|
--->node3
我希望当父对象被删除时,其所有子对象也将被删除。我该怎么做?使用数据库功能“”,您可以轻松做到这一点。 无论何时定义外键,我们都可以选择启用删除级联,以便在删除父行时自动删除引用的行 比如
create table Nodes(id int not null primary key AUTO_INCREMENT,
name varchar(20),
parent_id int null,
constraint FK_ID_With_CascadeDelete
foreign key (parent_id)
REFERENCES Nodes(id)
ON DELETE CASCADE);
参考以下链接获取示例,显示删除节点2即删除所有子节点
注意:由于“级联时删除”功能需要定义外键,因此对于没有父节点的节点,在父节点id中需要使用“null”而不是0。您可以显示您已经尝试过的内容吗?目前我使用了一个用于父层次结构的附加列。比如:0>1>2>5,我用它来查找父对象的子对象。这不是一个好主意,尤其是当我更改一个孩子的家长时,该孩子的所有孩子的层次结构列都必须更改。我是说代码,你编写了什么代码来解决这个问题?不幸的是,我找不到解决这个问题的代码。你看过以下内容了吗[非常感谢你的帮助]。