oracle触发器问题

 

idpid
10
21
31

比如oracle表中数据是这样的,怎么定义触发器,比如,更改id=1的id时,使id=2,3的行的pid跟着更改

还有删除id=1的行,pid为1的行也删除

[code="sql"]
create or replace trigger trigger_test
after update or delete on whisky
referencing old as old new as new
for each row
declare
PRAGMA AUTONOMOUS_TRANSACTION;
-- local variables here
begin
--for update
if updating then
update whisky set pid = :new.id where pid = :old.id;
else
--for delete
delete from whisky where pid = :old.id;
end if;
commit;
end trigger_test;

[/code]
我测试是ok的,不知是否满足你的需求。。。

[code="java"]
create or replace trigger trig_test_tb
after delete on test_tb
for each row
declare
pragma autonomous_transaction;
begin
delete from test_tb where pid=:old.id;
commit;
end;
[/code]