如a表中有个name字段、我要在执行insert时  如果name插入的值是'张三'   就要改成'李四'
用触发器实现、求高手写个触发器、、、

解决方案 »

  1.   

    create or replace trigger TRI_T_A
    before insert
    on A for each rowbegin
      if :new.name = '张三'
      then
      :new.name := '李四';
      end if;end;
      

  2.   

    create or replace trigger temptrigger
    before insert
    on A for each rowbegin
      if :new.name = '张三'
      then
      :new.name := '李四';
      end if;end;
      

  3.   

    为什么我再加个条件就错了、
    create or replace trigger TRI_T_a
    before insert on a
    for each rowbegin
      if :new.name = '张三'
      then
      :new.name := '李四';
      else if :new.name = '王五'
      then
      :new.name := '李四';
      end if;end;
    这样就错了  为什么呢
      

  4.   


    每个if都需要一个END IF相匹配。begin
      if :new.name = '张三'
      then
          :new.name := '李四';
          else if :new.name = '王五'
          then
          :new.name := '李四';
          end if;
      :new.name := '李四';

      end if;
    end;
      

  5.   

    你加條件之後語法有問題,不是else if ,應該是elsif...
    CREATE OR REPLACE TRIGGER xtest 
      BEFORE INSERT ON test FOR EACH ROW 
    BEGIN  
      IF :NEW.urname='张三' THEN 
        :NEW.urname:='李四';
      END IF;
    END;
      

  6.   

    支持楼上
    CREATE OR REPLACE TRIGGER TESTATRIGGER2 
      BEFORE INSERT ON TESTA FOR EACH ROW 
    BEGIN  
      IF :NEW.COL1=1 THEN 
        :NEW.COL1=2;
      ELSIF :NEW.COL1=3 THEN
        :NEW.COL1=2;
      END IF;
    END;
      

  7.   

    create or replace trigger test on name for each row
    begin
      if :new.name = '张三' then
       update :new.name = '李四';
      end if;
    end