用oracle触发器对记录表增加记录的问题(转载) - rethink log - 博客园

转载自: 

现想对指定用户下的指定表都作一个操作记录,有一个logs表, 

字段          类型 
id          number 
objid       varchar2(50)   --操作表的ID字段 
objname     varchar2(20)   --操作表的名称 
optione      varcahr2(20)   --操作类型(增删改) 
createtime  date           --logs记录创建时间 

需求就是,创建一个触发器,当对用户下的指定表进行增删改时,就对logs表增加一条操作记录。网上搜了很久都没有找到所要的答案,不知如何能自动得知操作表的ID号及正在进行的是那种类型的操作。 

具体操作如下: 

创建一个触发器如下: 

  1. create or replace trigger tr_test   
  2. after update or delete or insert   
  3. on t_test   
  4. for each row   
  5. begin   
  6.   if inserting then   
  7.   insert into t_logs  values(seq_logid.nextval,:new.id,'t_test','insert',sysdate);   
  8.   elsif updating then   
  9.   insert into t_logs  values(seq_logid.nextval,:old.id,'t_test','update',sysdate);   
  10.   elsif deleting then   
  11.   insert into t_logs  values(seq_logid.nextval,:old.id,'t_test','delete',sysdate);   
  12.   end if;   
  13. end;[  



tr_test :触发器名字 
on t_test:对那个表进行触发 
for each row:行级触发器 
begin.....end:具体操作步骤 
其中,:new.id是指insert后的ID号,old.id是指更新或删除后的ID号。seq_logid.nextval是指序列号,要建立一个q名为seq_logid的序列号
郑重声明:资讯 【用oracle触发器对记录表增加记录的问题(转载) - rethink log - 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——