修改table1 时触发 :  如果字段b1=100  那么b1字段就不做修改  但其他字段修改

解决方案 »

  1.   

    if(:new.b1=100) then
      :new.b1=:old:b1;
    end if
      
      

  2.   


    if(:new.b1=100) then 
      :new.b1 := :old:b1; 
    end if 
      

  3.   

    create or replace trigger TRG_b1
      after update on table1
      for each row
     
    begin
     if(:new.b1='100') then 
      :new.b1=:old:b1; 
    end if;  
    end TRG_b1;
    为什么编译出错
      

  4.   

    应该不可以对new进行编辑的。
      

  5.   


    你如果要修改的话需要定义的是before,不能用after,如果after怎么能修改叻如下create or replace trigger TRG_b1 
      before update on table1 
      for each row begin 
    if(:new.b1='100') then 
      :new.b1 := :old.b1; 
    end if; 
      

  6.   


    我觉得应该是
    if(:old = 100) then
       :new = :old.b1;
    end if;
      

  7.   


    if(:old.b1 = 100) then 
      :new.b1= :old.b1; 
    end if;