Php MySQL表中删除问题
因为我有这么多类别,所以我创建了一个“类别”数据库表:Php MySQL表中删除问题,php,mysql,Php,Mysql,因为我有这么多类别,所以我创建了一个“类别”数据库表: "id_category , parent_id , category_name , category_tag" 例如: ---------------------------------------------------------- | id_category | parent_id | category_name | category_tag | ------------------------------------
"id_category , parent_id , category_name , category_tag"
例如:
----------------------------------------------------------
| id_category | parent_id | category_name | category_tag |
----------------------------------------------------------
| 1 | 0 | Cars | cars |
| 2 | 1 | Parts | parts |
| 3 | 2 | Accesories | accesories |
----------------------------------------------------------
树:
Cars
|_Parts
|_Accesories
当我想删除树中的所有记录时,就会出现问题。
如何从上面的示例中删除树分支中的所有记录
在mySQL和PHP中可能吗?查找
InnodB
,这是您的站点目前可能使用的数据库引擎类型MyISAM
,也可以查找级联删除
InnobDb允许您分配表中标记之间的关系,然后您可以分配一个操作,以确定删除或更新行时会发生什么
如果要将删除时的
操作设置为CASCADE
,则会将删除操作级联到子行及其子行。因此,删除父项将自动删除所有子项、孙子项等。数据库表本质上不是一棵树,您通常会这样做
DELETE FROM categories WHERE id_category=3
或
您要查找的是父\u id上的外键,它引用了id\u类别,并对DELETE CASCADE进行了约束。然后,您只需删除根元素(category_id 0),最终将得到一个空表。如果您没有带约束的键,您只需在表上执行TRUNCATE命令即可删除所有内容
如果确实为级联删除配置了键,则删除顶部项(父项id=0)将删除所有依赖行和子依赖行。在这种情况下,删除第一行将清空表。我刚刚读到mysql文档…似乎正在工作。非常感谢您的指示。这根本不可扩展。避免。
DELETE FROM categories WHERE id_category=3 AND parent_id=2