比如 表如下列1  列2   列3 
 a   
 b 
 c 当我update 列2 的值时,触发器把列2的值和列1比较,列1  列2    列3 
 a   a  
 b   a  
 c 如果相同,就在列3中填true,不同就false,请问怎么实现呢?列1  列2    列3 
 a   a  -->true  
 b   a  -->false
 c  

解决方案 »

  1.   


    CREATE TABLE t(x VARCHAR2(2),y VARCHAR2(2),c VARCHAR2(10));
    INSERT INTO t VALUES('a',NULL,NULL);
    INSERT INTO t VALUES('b',NULL,NULL);
    INSERT INTO t VALUES('c',NULL,NULL);
    COMMIT;CREATE OR REPLACE TRIGGER TRIG_T
      BEFORE UPDATE OF Y ON T FOR EACH ROW
    BEGIN
      IF :NEW.Y = :OLD.X THEN
        :NEW.C := 'true';
      ELSE
        :NEW.C := 'false';
      END IF;
    END;
    /
      

  2.   

    比如说你的表叫做test,里面有字段a,b,c
    当更新b时执行你的那些操作.. 
    create or replace trigger test_trigger
      before update of b on test
      for each row
    begin
      if :new.b = :old.a then
        :new.c := 'true';
      else
        :new.c := 'false';
      end if;
    end;