17,140
社区成员




-- 不要用触发器了,用这种方法删除
SQL>
SQL> create table test(id int, pid int);
Table created
SQL> begin
2 insert into test values(1,0);
3 insert into test values(2,0);
4 insert into test values(11,1);
5 insert into test values(12,1);
6 insert into test values(13,1);
7 insert into test values(121,12);
8 insert into test values(131,13);
9 insert into test values(22,2);
10 insert into test values(23,2);
11 insert into test values(221,22);
12 insert into test values(231,23);
13 end;
14 /
PL/SQL procedure successfully completed
SQL> delete test
2 where id in (select id from test start with id = 1 connect by prior id = pid);
6 rows deleted
SQL> select * from test;
ID PID
--------------------------------------- ---------------------------------------
2 0
22 2
23 2
221 22
231 23
SQL> drop table test purge;
Table dropped
SQL>