PHP MySQL删除父行和子行

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP MySQL删除父行和子行脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有1个 MySQL表.它看起来像这样:

+---------+-------------+--------+
| ITem_id |  parent_id  |  Name  |
+---------+-------------+--------+
|   1     |     0       |  Home  |
+---------+-------------+--------+
|   2     |     1       |  Sub   |
+---------+-------------+--------+
|   3     |     2       | SubSub |
+---------+-------------+--------+

如果我删除item_id 1,我想删除子的其余部分,但我该怎么办呢?

我已经尝试过外键但只有你有2个表才有效吗?

我希望有人可以帮助我在MysqL中使用PHP吗?

解决方法

绝对可以使用MysqL自引用外键(您不需要多个表).但是,对于任何类型的外键支持,您需要使用 InnoDB engine.我的猜测是,您使用的是 MyISAM engine.

使用InnoDB,您可以创建一个类似于您已经拥有的表,包括自引用外键,如下所示:

CREATE TABLE  `yourTable` (
  `item_id` int(10) unsigned NOT NULL auto_increment,`parent_id` int(10) unsigned default NULL,`Name` vArchar(50) NOT NULL,Primary KEY  (`item_id`),KEY `FK_parent_id` (`parent_id`),CONSTRaiNT `FK_parent_id` FOReiGN KEY (`parent_id`) REFERENCES `yourTable` (`item_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENginE=InnoDB DEFAULT CHARSET=utf8;

然后,当您发出DELETE语句时,如:

DELETE From `yourTable` WHERE `item_id` = 1;

…它会删除每个’child’行,其parent_id也为1.如果这些’子’行中的任何一行都有自己的子项,它们也会被删除,等等(这就是ON DELETE CASCADE的含义).

脚本宝典总结

以上是脚本宝典为你收集整理的PHP MySQL删除父行和子行全部内容,希望文章能够帮你解决PHP MySQL删除父行和子行所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。