数据库中每个表都有个ModifyTime字段,我想写个TRIGGER,每当insert or updata时可以把对应记录的这个字段更新为系统当前时间。

解决方案 »

  1.   


    /--创建一个单表的insert和update触发器:
     
    Create or replace trigger biu_tabletest
      Before insert or update On tabletest
      for each row
    begin
      if updating then
        update tabletest set ModifyTime = sysdate;
        elseif inserting then 
        insert into tabletest values(:field1, ...sysdate);
      end if;
    end biu_tabletest;
      

  2.   

    DROP TRIGGER UpdataModifyTime;
    CREATE OR REPLACE TRIGGER UpdataModifyTime
    AFTER   INSERT OR UPDATA ON Employee 
    FOR EACH ROW
    BEGIN
    update Employee set ModifyTime = to_char(sysdate,'yyyy-mm-dd hh24:mi');
    END;
    如果我这样写不会把Employee表中每个记录的ModifyTime都改了吧。
      

  3.   

    DROP TRIGGER UpdataModifyTime;
    CREATE OR REPLACE TRIGGER UpdataModifyTime
    AFTER   INSERT OR UPDATA ON Employee 
    FOR EACH ROW
    BEGIN
    update Employee set ModifyTime = to_char(sysdate,'yyyy-mm-dd hh24:mi');
    END;
    如果我这样写不会把Employee表中每个记录的ModifyTime都改了吧。
      

  4.   

    DROP TRIGGER UpdataModifyTime;
    CREATE OR REPLACE TRIGGER UpdataModifyTime
    AFTER   INSERT OR UPDATA ON Employee 
    FOR EACH ROW
    BEGIN
    update Employee set ModifyTime = to_char(sysdate,'yyyy-mm-dd hh24:mi');
    END;
    这样写不会把Employee表中的每个记录中的ModifyTime都改了吧。
    主要是我对FOR EACH ROW的用法不太清楚