WITH RECURSIVE descendant_ids AS ( SELECT dictionaries_id FROM sys_dictionaries WHERE parent_id = #{parentId} UNION ALL SELECT child.dictionaries_id FROM sys_dictionaries child JOIN descendant_ids parent ON child.parent_id = parent.dictionaries_id ) DELETE FROM sys_dictionaries WHERE dictionaries_id IN (SELECT dictionaries_id FROM descendant_ids);