当把数据写入一张表a的时候,触发将aa,bb,cc字段数据写入另一张表b,同时填写系统时间data,写入成功,回写a表的tag字段为1
table aaa bb cc  tagtable baa bb cc data

解决方案 »

  1.   


    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
      

  2.   


    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;
      

  3.   


    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;
    /
      

  4.   

    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;