Oracle数据库:触发器类型分析(oracle触发器类型)

Oracle数据库中的触发器是一种特殊的存储过程,可以监视数据库表或视图的操作并执行定义的动作。它与一般的存储过程的最大区别在于,它的执行不是由程序调用而是由数据库定义的事件触发执行的。下面将详细介绍Oracle数据库中触发器的类型及具体实现。

1. 行级触发器:行级触发器是Oracle在使用时最为常用的一种触发器,它只会在表中的每一行发生数据更新、删除或插入时被触发。其创建的语法形式为:

CREATE OR REPLACE TRIGGER 触发器名称

BEFORE/AFTER (INSERT OR UPDATE OR DELETE)

ON 表名

REFERENCING NEW AS 新数据 OLD AS 旧数据

FOR EACH ROW

BEGIN

动作……

END;

该触发器可以创建在整个表的更新操作的前或后执行,如BEFORE或AFTER,而REFERENCING则是指对不同类型的更新操作,如INSERT 、UPDATE 和DELETE,可以根据需要在NEW和OLD中存储不同类型的数据。

2. 表级触发器:表级触发器可以应用于整个表,因此它只能在整个表被改变时才会触发,而不需要指定行或行数据。其创建语法为:

CREATE OR REPLACE TRIGGER 触发器名称

BEFORE/AFTER (INSERT OR UPDATE OR DELETE)

ON 表名

BEGIN

动作…

END;

该触发器本质上与行级触发器的语法极为相似,只是没有REFERENCING以及FOR EACH ROW部分。

3. 系统触发器:系统触发器指的是当一些特定的系统事件发生时,由可能无关的数据库表或视图受到影响时而激活执行定义的操作,其创建语法为:

CREATE OR REPLACE TRIGGER 触发器名称

AFTER LOGON ON DATABASE

BEGIN

动作…

END;

它在建立时需要指定触发时发生的事件,比如定义在用户登录时被触发,此时需要把AFTER LOGON永久指定文件中。

以上就是Oracle数据库中触发器的类型分析,由于触发器一般类型的执行效率比存储过程更高,因此,在使用Oracle数据库时,一定要正确运用触发器,以充分发挥性能优势。


数据运维技术 » Oracle数据库:触发器类型分析(oracle触发器类型)