with as 递归删除

对于父子级的删除

delete from tb_project_schedule where scheduleid in (
WITH RECURSIVE le (scheduleid,schedule_no,schedule_name,schedule_unit,fatherid) as
(
select scheduleid,schedule_no,schedule_name,schedule_unit,fatherid from tb_project_schedule where scheduleid='8C28CEFA-3A73-4A52-93F6-06DAF2C07109'
union all
select e2.scheduleid,e2.schedule_no,e2.schedule_name,e2.schedule_unit,e2.fatherid from tb_project_schedule e2,le e3 where e3.scheduleid=e2.fatherid
)
select scheduleid from le )

原文地址:https://www.cnblogs.com/xr210/p/12768267.html