删除父节点子节点未删除的两种方法
平时所使用的tree删除父节点,子节点还保留在数据库。
删除前:


删除后:

父节点已删除,但数据库保留了子节点数据,以下有两种方法解决
方法一:
使用递归删除方法,我使用的是mysql,sql语句改成
delete from dept where id = #{id} or id in (SELECT t3.id FROM (SELECT *, IF(find_in_set(t1.parent_Id, @p) > 0, @p:= concat(@p,',',id), 0) AS childId FROM (SELECT id, parent_Id FROM dept t ORDER BY id) t1, (SELECT @p:= #{id}) t2) t3 WHERE childId != 0);
里面的@p 是一个传参的对象,我这里面传的是 parent_id 父级id;;
第二种方法:后端限制删除,加一个if判断
if(sysDeptService.selectByParentId(id).size() > 0) {
return "请先删除下级部门";
}
根据查询id获取他的大小判断。
以上就是我所处理的方法。
数据库操作:安全删除父节点及其子节点的两种方法
本文介绍了在数据库中删除父节点时如何确保同时删除其所有子节点的两种策略。方法一是使用递归删除的MySQL SQL语句,通过查找并删除与父节点关联的所有子节点。方法二是后端实现限制,通过判断子节点数量,在有子节点的情况下阻止父节点的删除。这两种方法旨在保证数据的一致性和完整性。
977

被折叠的 条评论
为什么被折叠?



