有两个表:
t_A和t_B
t_B表是空表,
t_A表中有数据,当修改和删除该表中一行记录时,这行记录所有字段内容插入t_B表中,在加上操作时间;同时修改时要插入两行记录,修改前和修改后的。
该怎么写这个触发器啊?先谢谢了

解决方案 »

  1.   

    SQL> create or replace trigger MODIFY_TAB_A
    2 after update on t_a
    3 for each row
    4 declare
    5 -- local variables here
    6 begin
    7 insert into t_B (id, name, reason, Modifydate)values(:old.id, :old.name,
    'old_record',sysdate);
    8 insert into t_B (id, name, reason, Modifydate)values(:new.id, :new.name,
    'new_record',sysdate);
    9 end MODIFY_TAB_A;
    10 /触发器已创建SQL> create or replace trigger DELETE_TAB_B
    2 after delete on t_a
    3 for each row
    4 declare
    5 -- local variables here
    6 begin
    7 insert into t_B (id, name, reason, Modifydate)values(:old.id, :old.name,
    'del_record',sysdate);
    8 end DELETE_TAB_B;
    9 /触发器已创建SQL> update t_A set id = 5 where name = 'maomao';已更新 1 行。SQL> select * from t_B;ID NAME REASON MODIFYDATE
    ---------- ---------- ---------- -------------------
    2 maomao old_record 2006-08-24 11:00:07
    5 maomao new_record 2006-08-24 11:00:07
      

  2.   

    让 xiaoxiao1984(笨猫儿^_^) 抢先了,:)
      

  3.   

    CREATE OR REPLACE TRIGGER T_LRJL AFTER
    UPDATE ON T_A
    FOR EACH ROW
    DECLARE
    BEGIN
       insert into T_B (:OLD.IS_BALANCE,:OLD.WTRUCK_TIME,'修改前');
     insert into T_B (:NEW.IS_BALANCE ,sysdate,'修改后');
    END;以上编译报下面错误
    Warning: Trigger created with compilation errors请楼上看看
      

  4.   

    insert into tab_name values(:OLD.IS_BALANCE,:OLD.WTRUCK_TIME,'修改前')楼主少了关键字values