转载自:http://tcrct.iteye.com/blog/341211
现想对指定用户下的指定表都作一个操作记录,有一个logs表,
字段 类型
id number
objid varchar2(50) --操作表的ID字段
objname varchar2(20) --操作表的名称
optione varcahr2(20) --操作类型(增删改)
createtime date --logs记录创建时间
需求就是,创建一个触发器,当对用户下的指定表进行增删改时,就对logs表增加一条操作记录。网上搜了很久都没有找到所要的答案,不知如何能自动得知操作表的ID号及正在进行的是那种类型的操作。
具体操作如下:
创建一个触发器如下:
- create or replace trigger tr_test
- after update or delete or insert
- on t_test
- for each row
- begin
- if inserting then
- insert into t_logs values(seq_logid.nextval,:new.id,'t_test','insert',sysdate);
- elsif updating then
- insert into t_logs values(seq_logid.nextval,:old.id,'t_test','update',sysdate);
- elsif deleting then
- insert into t_logs values(seq_logid.nextval,:old.id,'t_test','delete',sysdate);
- end if;
- 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系统触发器来实现对`DROP TABLE`和`TRUNCATE TABLE`命令的监控与阻止。以下详细介绍两种不同的Oracle版本(10g和8i)下如何创建相应的系统触发器。 ### Oracle 10g环境下的...
### Oracle触发器Before和After应用详解 #### 引言 Oracle数据库系统中,触发器是一项核心功能,用于响应特定事件的自动执行代码块。本文旨在深入解析Oracle触发器中的Before和After两种触发时机,以及它们在...
综上所述,使用Oracle触发器备份表数据是一种高效且灵活的方法,但同时也需要注意其潜在的局限性和挑战。通过合理设计和优化触发器,可以有效提升数据备份的效率和安全性,为数据库管理提供有力的支持。
然而,也需要注意潜在的问题,如性能开销、数据库阻塞和复杂性增加。因此,在实际应用中,应谨慎评估是否真的需要在数据库层进行这种集成,或者是否可以考虑消息队列、事件驱动架构等替代方案。 总之,"Oracle...
### Oracle中记录用户登录信息的触发器实例解析 #### 一、背景介绍 在Oracle数据库管理中,确保数据安全是一项至关重要的任务。其中,记录用户的登录信息(如登录时间、用户名和客户端IP地址等)可以帮助管理员更...
Oracle触发器是数据库管理系统中的一种特殊程序,它与数据库表的操作紧密相关,可以在特定的数据操作事件(如INSERT、UPDATE或DELETE)发生时自动执行。在本实验报告中,主要涉及了Oracle触发器与参照完整性约束的...
Oracle 触发器实例讲解 Oracle 触发器是一种特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。它主要有以下几个功能: 1. 允许/限制对表的修改:触发器可以控制对表的修改操作,...
4. **提供审计和日志记录**:通过触发器记录表中数据的变化情况,方便后续的数据审计。 5. **防止无效的事务处理**:避免不符合规则的数据被写入数据库。 6. **启用复杂的业务逻辑**:利用触发器实现更为复杂的业务...
Oracle触发器是数据库管理系统中的一种特殊程序,它们自动在特定事件发生时执行,例如当数据插入、更新或删除时。在Oracle 8i/9i版本中,由于内置的审计功能仅能记录谁执行了操作,但无法详细展示数据的变化情况,...
### Oracle触发器详解 在Oracle数据库管理中,触发器是一种非常强大的工具,它允许你在特定的数据库事件(如数据插入、更新或删除)发生时自动执行预定义的SQL语句或PL/SQL代码块。这使得数据库能够在无需外部程序...
如果需求非常有限,可以用数据触发器从一个数据库中向另一个数据库复制数据,如果数据复制需求仅与数据的插入有关,当一条记录插入到一个数据库中的某个基表中时,触发器可以将该记录复制到另一个数据库中的相应表中...
在深入探讨《Oracle触发器与存储过程高级编程》这一主题之前,我们首先应当明确Oracle数据库在企业级应用中的核心地位。Oracle数据库以其强大的数据处理能力、高可用性和安全性,成为众多大型企业和组织首选的数据...
Oracle触发器是一种数据库对象,它与特定的表相关联,并在对表执行DML(INSERT, UPDATE, DELETE)操作时自动触发执行。触发器的目的是增强数据的一致性、正确性和规范性。在C/S架构中,触发器是数据库一致性的重要...
根据给定的文件信息,我们将深入探讨Oracle数据库中的触发器和内置程序包,重点解析触发器的概念、创建方法以及其在数据库管理中的作用。 ### 触发器:自动化执行的存储过程 触发器是一种特殊类型的存储过程,它在...
在数据库管理系统中,Oracle触发器是一种特殊类型的存储过程,它自动执行对数据的操作,当特定事件发生时(如插入、更新或删除数据)在数据库表上执行。触发器可以用于实现复杂的数据完整性规则、审计跟踪、性能优化...
本篇文章将探讨如何在Oracle触发器中调用Java程序,以扩展数据库的功能并利用Java丰富的库资源。 首先,我们需要了解Oracle的PL/SQL(Procedural Language/Structured Query Language)语言,它是Oracle数据库内置...
Oracle触发器是数据库管理系统Oracle中的一种重要特性,用于在特定数据操作(如插入、删除、更新)发生时自动执行预定义的SQL语句或PL/SQL代码块。这些语句或代码块通常用来实现复杂的数据完整性规则、安全性控制、...
总之,“Oracle触发器与存储过程高级编程”是数据库开发中的重要技能,理解它们的工作原理、如何创建和使用,以及何时应该避免使用,对于提升数据库管理效率和数据安全性至关重要。通过实践和学习,你可以更好地掌握...
#### 二、示例1:记录表变更日志 **目的**:记录对`test`表进行插入、更新和删除操作的日志信息。 **步骤**: 1. **创建表**:首先创建`test`表用于存放基本数据。 ```sql CREATE TABLE test (t_id NUMBER(4), t...
以下是对Oracle触发器的详细说明: 1. 触发器类型: - 行级触发器:在对单条记录进行INSERT、UPDATE或DELETE操作时触发,对每条受影响的记录执行一次。 - 语句级触发器:在执行DML语句后触发,无论操作影响多少...