create or replace trigger trg_test
before update of id,name on test
for each row
begin
 :new.deliverflag:=3;
end;
/

解决方案 »

  1.   

    > create or replace trigger tbi_toms
      2  before insert or update or delete on toms
      3  for each row
      4  declare
      5  begin
      6    if inserting then
      7      if nvl(:new.flag,'0')<>'3' then
      8        :new.flag:='1';
      9      end if;
     10    elsif updating then
     11      :new.flag:=2;
     12    else
     13      if :old.flag<>3 then
     14        insert into temp_toms (id, flag, s) values(:old.id,'3',:old.s);
     15      end if;
     16    end if;
     17  end;
     18  
    谢谢楼上的.能不能机遇这个改以下呢?只要判断以下是那个字段就不出触发就性.应该我可能一个表里有很多字段.谢谢
      

  2.   

    create or replace trigger tbi_toms
    before insert or update or delete on toms
    for each row
    declare
    begin
      if inserting then
        if nvl(:new.flag,'0')<>'3' then
          :new.flag:='1';
        end if;
      elsif updating then
       if nvl(:old.deliverflag,0)<>nvl(:new.deliverflag,0) then
       null;
       else
         :new.flag:=2;
        end if;
      else
        if :old.flag<>3 then
          insert into temp_toms (id, flag, s) values(:old.id,'3',:old.s);
        end if;
      end if;
    end;
    /