数据库触发器的分类及区别.pdfVIP

  • 10
  • 0
  • 约6.12千字
  • 约 5页
  • 2017-06-07 发布于湖北
  • 举报
Oracle 触发器的分类和使用 摘要:在 Oracle 中,触发器是一种特殊的存储过程,它在发生某种数据库事件时由Oracle 系统自动触发。触发器通常用于加强数据的完整性约束和业务规则等,对于表来说,触发器 可以实现比 CHECK 约束更为复杂的约束。本文介绍了 Oracle 触发器的概念,功能,优缺 点,组成等方面。详细解读了 Oracle 触发器在各方面的应用并配合相关实例。 关键字:Oracle、触发器、介绍、应用 一、触发器的介绍 1.1 触发器的概念 在 Oracle 中,触发器是一种特殊的存储过程,它在发生某种数据库事件时由 Oracle 系 统自动触发发器,通常用于加强数据的完整性约束和业务规则等。 触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是 不能被直接调用的,而是由一个事件来启动运行。即触发器是当某个时间发生时自动地隐式 运行。 1.2 触发器的功能  允许/限制对表的修改  自动生成派生列,比如自增字段  强制数据一致性  提供审计和日志记录  防止无效的事务处理  启用复杂的业务逻辑 1.3 触发器的优缺点 优点:触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约 束可以更有效地执行这些更改。触发器可以强制比用 CHECK 约束定义的约束更为复杂的 约束。与 CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一 个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定 义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中 的多个同类触发器(INSERT、UPDATE 或 DELETE )允许采取多个不同的对策以响应同一 个修改语句。 缺点:触发器功能强大,轻松可靠地实现许多复杂的功能,但是它也具有一些缺点那 就是由于我们的滥用会造成数据库及应用程序的维护困难。在数据库操作中,我们可以通过 关系、触发器、存储过程、应用程序等来实现数据操作。同时规则、约束、缺省值也是保证 数据完整性的重要保障。如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加 了维护的复杂程序。 1.4 触发器的组成 1 1. 触发事件:引起触发器被触发的事件。 例如:DML 语句(INSERT, UPDATE, DELETE 语句对表或视图执行数据处理操作) 、DDL 语句(如 CREATE、ALTER 、DROP 语句在数据 库中创建、修改、删除模式对象)、数据库系统事件(如系统启动或退出、异常错误)、用户 事件(如登录或退出数据库)。 2. 触发时间:即该 TRIGGER 是在触发事件发生之前(BEFORE )还是之后(AFTER) 触发,也就是触发事件和该 TRIGGER 的操作顺序。 3. 触发操作:即该 TRIGGER 被触发之后的目的和意图,正是触发器本身要做的事 情。 例如:PL/SQL 块。 4. 触发对象:包括表、视图、模式、数据库。只有在这些对象上发生了符合触发条 的触发事件,才会执行触发操作。 5. 触发条件:由 WHEN 子句指定一个逻辑表达式。只有当该表达式的值为 TRUE 时, 遇到触发事件才会自动执行触发器,使其执行触发操作。 6. 触发频率:说明触发器内定义的动作被执行的次数。即语句级(STATEMENT)触发 器和行级(ROW)触发器。 1.5 触发器触发次序 I. 执行 BEFORE 语句级触发器; II. 对与受语句影响的每一行  执行 BEFORE 行级触发器  执行 DML 语句  执行 AFTER 行级触发器 I. 执行 AFTER 语句级触发器 二、触发器的种类 Oracle 中的触发器的类型主要有DML 触发器、替代触发器、系统事件触发器和 DDL 触发器。 2.1 DML 触发器

文档评论(0)

1亿VIP精品文档

相关文档