脚本宝典收集整理的这篇文章主要介绍了PHP MySQL删除父行和子行,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
+---------+-------------+--------+ | ITem_id | parent_id | Name | +---------+-------------+--------+ | 1 | 0 | Home | +---------+-------------+--------+ | 2 | 1 | Sub | +---------+-------------+--------+ | 3 | 2 | SubSub | +---------+-------------+--------+
如果我删除item_id 1,我想删除子的其余部分,但我该怎么办呢?
我已经尝试过外键但只有你有2个表才有效吗?
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,请注明来意。