zuier 发表于 2016-10-25 03:02:41

mysql的树形结构的删除节点的存储过程


CREATE PROCEDURE proc_delete_department(IN rootid int)
begin
declare _level int DEFAULT 0;      
DROP TABLE IF EXISTS temptab;      
create table temptab(id int, level int);               
insert into temptab(id, level) values(rootid, _level);
REPEAT            
insert into temptab(id, level)
select root.id, _level+1
from department root, temptab sub
where root.parentId= sub.id and sub.level = _level;
set _level = _level + 1;   
until ROW_COUNT() = 0      
end REPEAT;
delete from department whereid in (select id from temptab);
DROP TABLE IF EXISTS temptab;            
end;


department 表 id 和 parentId
页: [1]
查看完整版本: mysql的树形结构的删除节点的存储过程