有人能帮忙写个trigger吗?没写过oracle的trigger
就是修改表的记录的某几个字段就把老的数据和新的数据写到日至表里
能帮忙写个完整的trigger语句吗?谢谢了

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER TRIGGER_NAME 
    AFTER UPDATE ON TABLE_NAME 
    FOR EACH ROW
    BEGIN
      INSERT INTO TBALE_NAME (ID1,ID2)
      VALUES (:OLD.VALUE1,:OLD.VALUE2);
    END;僅供參考!
      

  2.   

    SQL> create table test_tab
      2  (
      3    c1 varchar2(10),
      4    c2 varchar2(10)
      5  )
      6  ;
     
    Table created
     
    SQL> 
    SQL> create table log_tab
      2  (
      3    note varchar2(10),
      4    c1   varchar2(10),
      5    c2   varchar2(10)
      6  )
      7  ;
     
    Table created
     
     
    SQL> insert into test_tab values(1,1);
     
    1 row inserted
     
    SQL> commit;
     
    Commit complete
     
    SQL> select * from test_tab;
     
    C1         C2
    ---------- ----------
    1          1
     
    SQL> 
    SQL> CREATE OR REPLACE TRIGGER t_test_tab
      2         before update ON test_tab
      3         FOR EACH ROW
      4         begin
      5         insert into log_tab values('OLD',:old.c1,:old.c2);
      6         insert into log_tab values('NEW',:new.c1,:new.c2);
      7         end;
      8  /
     
    Trigger created
     
    SQL> update test_tab set c1=2,c2=3;
     
    1 row updated
     
    SQL> commit;
     
    Commit complete
     
    SQL> select * from log_tab;
     
    NOTE       C1         C2
    ---------- ---------- ----------
    OLD        1          1
    NEW        2          3
     
    SQL> 
      

  3.   

    CREATE OR REPLACE TRIGGER TRIGGER_NAME
    AFTER UPDATE ON TABLE_NAME
    FOR EACH ROW
    BEGIN
      INSERT INTO TBALE_NAME (TYPE,ID1,ID2)
      VALUES ('OLD':OLD.VALUE1,:OLD.VALUE2);
      INSERT INTO TBALE_NAME (TYPE,ID1,ID2)
      VALUES ('NEW':NEW.VALUE1,:NEW.VALUE2);
    END;