create or replace trigger test_sql after insert a begin delete from b; insert into b (aa, bb, cc, data) (select a.aa, a.bb, a.cc, (select sysdate from dual) from a); update a set a.tag = 1 where aa = :new.aa;end; 大致是这样,你也可以将insert into 那段换成 insert into b (aa,bb,cc,data)values(:new.aa,:new.bb,:new.cc,(select sysdate from dual)); 而不用删除b
create or replace trigger trigger_a after insert on a --触发的表 for each row --对每一行触发 begin insert into b (aa, bb, cc, data) (select :new.aa, :new.bb, :new.cc, sysdate from a);
update a set a.tag = 1 where aa = :new.pkid;--pkid为a表的主键id end;
create or replace trigger tri_test before insert or update on a for each row begin insert into b values(:new.aa,:new.bb,:new.cc,sysdate); :new.tag := 1; end; /
create or replace trigger tg_a before insert on a for each row begin insert into b values(:new.aa,:new.bb,:new.cc,sysdate); :new.tag:=1; exception when others then dbms_output.put_line('error'); end tg_a;
create or replace trigger test_sql
after insert a
begin
delete from b;
insert into b
(aa, bb, cc, data)
(select a.aa, a.bb, a.cc, (select sysdate from dual) from a); update a set a.tag = 1 where aa = :new.aa;end;
大致是这样,你也可以将insert into 那段换成 insert into b (aa,bb,cc,data)values(:new.aa,:new.bb,:new.cc,(select sysdate from dual));
而不用删除b
create or replace trigger trigger_a
after insert
on a --触发的表
for each row --对每一行触发
begin
insert into b
(aa, bb, cc, data)
(select :new.aa, :new.bb, :new.cc, sysdate from a);
update a set a.tag = 1 where aa = :new.pkid;--pkid为a表的主键id
end;
create or replace trigger tri_test before insert or update on a for each row
begin
insert into b values(:new.aa,:new.bb,:new.cc,sysdate);
:new.tag := 1;
end;
/
before insert on a
for each row
begin
insert into b values(:new.aa,:new.bb,:new.cc,sysdate);
:new.tag:=1;
exception
when others then
dbms_output.put_line('error');
end tg_a;