揭秘Oracle数据库触发器分类知识(oracle触发器类型)

Oracle 数据库触发器是用户可以在特定动作/事件发生时自动调用某些执行任务,是Oracle数据库中最有用的特性之一。本文将揭秘Oracle数据库触发器分类知识,包括其工作原理、优势和组成等等。

Oracle 数据库触发器可分为四种类型:表触发器、集合类触发器、存储过程触发器和系统触发器。它们均具备相同的基本原理,也就是系统会监视被触发的表或数据库系统的模式,并在监视过程中发生变化时执行指定的任务。本文重点揭秘四种不同类型的Oracle 数据库触发器。

首先,是表触发器。表触发器是将事件驱动某一特定操作并且起一个自动化操作的作用。在创建表触发器时,可以制定操作的类型(如:INSERT、UPDATE、DELETE)以及在其四个时机(BEFORE或者AFTER)中触发的操作。创建表触发器的代码例子如下所示:

create or replace trigger table_trigger
before insert
on table_name
for each row
begin
--定义操作的函数
end;

其次,是集合类触发器。集合类触发器提供了一些特殊的功能,可以被用来控制特定查询(这些查询必须具有特定的条件,以及满足特殊条件时)以及删除特定行的功能。此外,它还支持对insert,update,delete等操作的替换( deferrable )。创建集合类触发器的代码例子如下所示:

create or replace trigger collection_trigger
ON collection_name
for each item
begin
--定义操作的函数
end;

第三,是存储过程触发器。存储过程触发器比表触发器和集合类触发器更加强大,因为它可以在触发器中调用函数,这样可以实现复杂的操作,而且可以调用存储过程以及其他多种类型的函数。例如,当用户插入数据的时候,就可以调用一个特定的存储过程,而这个存储过程则可以自动调用一些其他的程序以及数据库功能。创建存储过程触发器的代码例子如下所示:

create or replace trigger stored_procedure_trigger 
before insert
on table_name
for each row
begin
stored_procedures_name;
end;

最后,是系统触发器。系统触发器是Oracle 数据库最重要的特性,它能够记录对系统的更改,检查和更正更改,保存日志,针对各种情况报告审计信息等。它支持域内事件以及系统层面的事件,以此达到自动化任务的目的。创建系统触发器的代码例子如下所示:

create or replace trigger system_trigger 
system_event
action_name

综上所述,Oracle数据库触发器可以分为四类:表触发器、集合类触发器、存储过程触发器和系统触发器。每种触发器都有其特定的用途,不但能提高数据库的效率,而且可以简化程序员的工作,因此,越来越多的开发者开始使用它们,从而获得更大的收益。


数据运维技术 » 揭秘Oracle数据库触发器分类知识(oracle触发器类型)