建立触发器,在用户进行update\insert\delete 的时候就向另一个动作记录表中插入操作类型、操作时间、操作前记录、操作后记录。触发器中:new.引用更改后的值,:old.引用更改前的值。
还可以通过inserting\deleting\updating判断用户执行 的是什么操作。
具体例子在将触发器的书里都有相关介绍。

解决方案 »

  1.   

    举个更新记录后的输出
    SQL>set serveroutput on
    SQL>create or replace trigger display_new_oper
        before insert or update
        on custmor
        for each row
        declare
        new_sales_amt number;
        begin
            dbms_output.put_line("operated successful!");
        end;
        /
      

  2.   

    --要求系统中要用temp_log表用于记录
    --要建一个序列
    create or replace trigger test_test 
        after insert or update or delete on tablename 
        for each row
    begin
        if inserting then 
            insert into temp_log(id,log_text,opp_date) values(序列.nextval,'插入了一条记录,ID为:'||:new.id,sysdate);
        elsif updating then 
            insert into temp_log(id,log_text,opp_date) values(序列.nextval,'ID为:'||:old.id||'的记录被更新',sysdate);
        else
            insert into temp_log(id,log_text,opp_date) values(序列.nextval,'ID为:'||:old.id||'的记录被删除',sysdate);
        end if;    
        commit;
    end;