添加、删除、修改触发器,更新数据放入t_log表

create or replace trigger put_log
  after insert or update or delete  on t_user 
  for each row
declare
--val_tablename varchar2(20);
--val_processing varchar2(20);
val_processingtime date;
val_deletedata varchar2(20);
val_insertdata varchar2(20);
val_olddata varchar2(20);
val_newdata varchar2(20);
--val_tablename:='t_user';

  -- local variables here
begin
   --修改触发
   if(updating) then
     dbms_output.put_line('updating!');
     val_processingtime:=sysdate;
     val_olddata:=:old.uname;
     val_newdata:=:new.uname;
     begin
       if(:old.uname<>:new.uname) then
         insert into t_log(tablename,processing,olddata,newdata,processingtime)
            values('t_user','updating',val_olddata,val_newdata,val_processingtime);
        end if;
     end;
      dbms_output.put_line(
       '编号:     '||:old.uno||
       '姓名:     '||:old.uname||
       'old字段: '||val_olddata||
       'new字段   '||val_newdata||
       'time is:  '||val_processingtime);
    
   --删除触发
   else if(deleting) then
     dbms_output.put_line('delete');
     val_processingtime:=sysdate;
     val_deletedata:=:old.uname;--delete old data
       begin
         insert into t_log(tablename,processing,processingtime,deletedata)
           values('t_user','deleting',val_processingtime,val_deletedata);
       end;
       dbms_output.put_line(
       '编号:     '||:old.uno||
       '姓名:     '||:old.uname||
       'time is:  '||val_processingtime||
       '删除字段: '||val_deletedata);
     --
   --插入触发
   else if(inserting) then
     dbms_output.put_line('insert');
     val_processingtime:=sysdate;
     val_insertdata:=:new.uname;---
     begin
         insert into t_log(tablename,processing,processingtime,insertdata)
           values('t_user','insert',val_processingtime,val_insertdata);
     end;
     dbms_output.put_line(
       '插入编号: '||:new.uno||
       '插入姓名: '||:new.uname||
       ' time is: '||val_processingtime);
   end if;
   end if;
   end if ;
end put_log;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值