Oracle 触发器的概述

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 触发器的概述

触发器是与一个表或数据库事件联系在一起的,当特定事件出现时将自动执行触发器的代码块。触发器与过程的区别在于:过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。

触发器能够执行的功能包括:

●自动生成数据。

●强制复杂的完整性约束条件。

●自定义复杂的安全权限。

●提供审计和日志记录。

●启用复杂的业务逻辑。

与过程和函数不相同,在创建触发器时还需要指定触发器的执行时间和触发事件。创建触发器的语法规则如下:

create [ or replace ] trigger trigger_name

[before | after | instead of]

trigger_event

on table_name

[for each row[when tigger_condition]]

begin

trigger_body

end trigger_name;

创建触发器的主要参数包括:

●BEFORE | AFTER | INSTEAD OF用于指定触发器的触发时间。BEFORE指定在触

发事件之前执行;AFTER指定在触发事件执行之后执行;INSTEAD OF指定触发

器为替代触发器。

●TRIGGER_EVENT参数指定引起触发器运行的触发事件。

●TABLE_NAME指定与触发器相关的表名称。

●FOR EACH ROW指定触发器为行级触发器,表示该触发器对影响到的每一行数据

都触发执行一次。如果未指定该条件,则表示创建语句级触发器,这时无论影响到

多少行,触发器都只会执行一次。

●TRIGGER_CONDITION参数指定触发器应该满足的条件。

Oracle对触发器的功能进行了扩展,不仅对表或视图的DML操作会引起触发器的运行,而且对Oracle系统的操作也会引发触发器的运行。根据触发器的触发事件和触发器的执行情况,可以将Oracle所支持的触发器分为如下几种类型:

●行级触发器行级触发器对DML语句影响的每个行执行一次。

●语句级触发器语句级触发器对每个DML语句执行一次。

●INSTEAD OF触发器此触发器是定义在视图上的,而不是在表上定义的触发器,

它是用来替换所使用实际语句的触发器。

●系统事件触发器系统触发器就是在Oracle数据库系统的事件中进行触发,如上

面曾说过的Oracle系统的启动与关闭等。

●用户事件触发器用户事件触发器是指与数据库定义语句DDL或用户的登录/注

销等事件相关的触发器,如用户连接到数据,修改表结构等。

相关文档
最新文档