精通Oracle触发器:介绍各种类型(oracle触发器类型)

要熟悉Oracle触发器,首先要清楚触发器的基本定义:触发器指的是在特定行或表动作发生时要被执行的特定程序或程序集合。考虑到运行速度,除此之外,Oracle触发器是非常有用的,可以在更新、插入或删除操作发生时自动启动,实现更多的应用。

Oracle触发器有以下种类:

(1) 表级触发器:表级触发器以表名为触发器的作用域,是用来捕获在某个表上发生的INSERT,UPDATE, DELETE操作,并执行特定的SQL语句,对于表的操作均会使触发器启动,如:

CREATE or REPLACE TRIGGER trigger_name 
BEFORE INSERT OR UPDATE OR DELETE ON table_name
FOR EACH ROW EXECUTE PROCEDURE proc_name;

(2) 行级触发器:这种触发器是一种针对表行数据进行SQL语句处理的一种操作,它是在某个特定表行数据被更新或者删除时触发,其中,BEFORE表示在这行数据更新之前运行,AFTER表示在这行数据更新之后运行。如:

CREATE TRIGGER trigger_name 
BEFORE INSERT OR UPDATE OR DELETE ON table_name
FOR EACH ROW EXECUTE PROCEDURE proc_name;

(3) 语句级触发器:语句级触发器在数据表进行某次数据库更新行为时被触发,在数据库更新行为完成之前和之后都会被触发,如:

CREATE or REPLACE TRIGGER trigger_name 
BEFORE INSERT OR UPDATE OR DELETE ON table_name
EXECUTE PROCEDURE proc_name;

虽然简单,但如果希望在Oracle上实现不同类型的触发器,最好把上面介绍的三类触发器熟悉一下,因为每种机制都有各自的应用场景,这样才能有效的充分利用Oracle的触发器机制,从而实现数据的各类自动操作。


数据运维技术 » 精通Oracle触发器:介绍各种类型(oracle触发器类型)