zoukankan      html  css  js  c++  java
  • (转载)用oracle触发器对记录表增加记录的问题

    转载自:http://tcrct.javaeye.com/blog/341211 

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

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

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

    具体操作如下: 

    创建一个触发器如下: 

    Sql代码 
    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的序列号
  • 相关阅读:
    springboot springcloud zuul 过滤器
    springboot springcloud eureka 熔断器
    javaweb servlet filter
    maven nexus 搭建私服(二)
    springboot springcloud zuul 网关入门
    springboot springcloud 配置中心
    springboot springcloud eureka 入门
    java rabbitmq
    java jvm调优
    maven nexus 搭建私服(一)
  • 原文地址:https://www.cnblogs.com/rethink/p/1708325.html
Copyright © 2011-2022 走看看