表名:node
字段:node_id up_node
數據:
1 0
2 1
3 1
4 2
5 2
要求:刪除該表中的某個節點時,刪除該節點下的所有子節點.如刪除node_id = 2的節點,需同時刪除node_id=4,node_id=5的節點.
方法:
delete node where node_id in(
select node_id from node
start with node=2
connect by prior node_id=up_node );
原本以爲要利用遞歸或臨時表的方法,結果發現這麼一個語句就夠了.