`
#rethink#
  • 浏览: 47466 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

(转载)用oracle触发器对记录表增加记录的问题

阅读更多

转载自:http://tcrct.iteye.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的序列号
分享到:
评论

相关推荐

    利用 Oracle 系统触发器防止误删除表操作

    为了应对这类问题,可以通过创建Oracle系统触发器来实现对`DROP TABLE`和`TRUNCATE TABLE`命令的监控与阻止。以下详细介绍两种不同的Oracle版本(10g和8i)下如何创建相应的系统触发器。 ### Oracle 10g环境下的...

    关于oracle触发器before和after的应用问题

    ### Oracle触发器Before和After应用详解 #### 引言 Oracle数据库系统中,触发器是一项核心功能,用于响应特定事件的自动执行代码块。本文旨在深入解析Oracle触发器中的Before和After两种触发时机,以及它们在...

    Oracle触发器备份表数据

    综上所述,使用Oracle触发器备份表数据是一种高效且灵活的方法,但同时也需要注意其潜在的局限性和挑战。通过合理设计和优化触发器,可以有效提升数据备份的效率和安全性,为数据库管理提供有力的支持。

    oracle 触发器实时调用java 中http接口

    然而,也需要注意潜在的问题,如性能开销、数据库阻塞和复杂性增加。因此,在实际应用中,应谨慎评估是否真的需要在数据库层进行这种集成,或者是否可以考虑消息队列、事件驱动架构等替代方案。 总之,"Oracle...

    oracle中记录用户登录信息的触发器的例子

    ### Oracle中记录用户登录信息的触发器实例解析 #### 一、背景介绍 在Oracle数据库管理中,确保数据安全是一项至关重要的任务。其中,记录用户的登录信息(如登录时间、用户名和客户端IP地址等)可以帮助管理员更...

    Oracle触发器实验报告

    Oracle触发器是数据库管理系统中的一种特殊程序,它与数据库表的操作紧密相关,可以在特定的数据操作事件(如INSERT、UPDATE或DELETE)发生时自动执行。在本实验报告中,主要涉及了Oracle触发器与参照完整性约束的...

    Oracle触发器 实例讲解

    Oracle 触发器实例讲解 Oracle 触发器是一种特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。它主要有以下几个功能: 1. 允许/限制对表的修改:触发器可以控制对表的修改操作,...

    oracle触发器语法要点

    4. **提供审计和日志记录**:通过触发器记录表中数据的变化情况,方便后续的数据审计。 5. **防止无效的事务处理**:避免不符合规则的数据被写入数据库。 6. **启用复杂的业务逻辑**:利用触发器实现更为复杂的业务...

    oracle触发器实现审计功能

    Oracle触发器是数据库管理系统中的一种特殊程序,它们自动在特定事件发生时执行,例如当数据插入、更新或删除时。在Oracle 8i/9i版本中,由于内置的审计功能仅能记录谁执行了操作,但无法详细展示数据的变化情况,...

    oracle触发器

    ### Oracle触发器详解 在Oracle数据库管理中,触发器是一种非常强大的工具,它允许你在特定的数据库事件(如数据插入、更新或删除)发生时自动执行预定义的SQL语句或PL/SQL代码块。这使得数据库能够在无需外部程序...

    Oracle触发器的概念和类型

    如果需求非常有限,可以用数据触发器从一个数据库中向另一个数据库复制数据,如果数据复制需求仅与数据的插入有关,当一条记录插入到一个数据库中的某个基表中时,触发器可以将该记录复制到另一个数据库中的相应表中...

    Oracle触发器与存储过程高级编程

    在深入探讨《Oracle触发器与存储过程高级编程》这一主题之前,我们首先应当明确Oracle数据库在企业级应用中的核心地位。Oracle数据库以其强大的数据处理能力、高可用性和安全性,成为众多大型企业和组织首选的数据...

    ORACLE触发器在软件开发中的应用11

    Oracle触发器是一种数据库对象,它与特定的表相关联,并在对表执行DML(INSERT, UPDATE, DELETE)操作时自动触发执行。触发器的目的是增强数据的一致性、正确性和规范性。在C/S架构中,触发器是数据库一致性的重要...

    ORACLE触发器、内置程序包教学.doc )

    根据给定的文件信息,我们将深入探讨Oracle数据库中的触发器和内置程序包,重点解析触发器的概念、创建方法以及其在数据库管理中的作用。 ### 触发器:自动化执行的存储过程 触发器是一种特殊类型的存储过程,它在...

    Oracle触发器详解

    在数据库管理系统中,Oracle触发器是一种特殊类型的存储过程,它自动执行对数据的操作,当特定事件发生时(如插入、更新或删除数据)在数据库表上执行。触发器可以用于实现复杂的数据完整性规则、审计跟踪、性能优化...

    Oracle触发器里调用Java程序

    本篇文章将探讨如何在Oracle触发器中调用Java程序,以扩展数据库的功能并利用Java丰富的库资源。 首先,我们需要了解Oracle的PL/SQL(Procedural Language/Structured Query Language)语言,它是Oracle数据库内置...

    Oracle触发器语法

    Oracle触发器是数据库管理系统Oracle中的一种重要特性,用于在特定数据操作(如插入、删除、更新)发生时自动执行预定义的SQL语句或PL/SQL代码块。这些语句或代码块通常用来实现复杂的数据完整性规则、安全性控制、...

    oracle触发器与存储过程高级编程

    总之,“Oracle触发器与存储过程高级编程”是数据库开发中的重要技能,理解它们的工作原理、如何创建和使用,以及何时应该避免使用,对于提升数据库管理效率和数据安全性至关重要。通过实践和学习,你可以更好地掌握...

    oracle数据库触发器实例

    #### 二、示例1:记录表变更日志 **目的**:记录对`test`表进行插入、更新和删除操作的日志信息。 **步骤**: 1. **创建表**:首先创建`test`表用于存放基本数据。 ```sql CREATE TABLE test (t_id NUMBER(4), t...

    oracle触发器实例

    以下是对Oracle触发器的详细说明: 1. 触发器类型: - 行级触发器:在对单条记录进行INSERT、UPDATE或DELETE操作时触发,对每条受影响的记录执行一次。 - 语句级触发器:在执行DML语句后触发,无论操作影响多少...

Global site tag (gtag.js) - Google Analytics