深入浅出:Oracle触发器类型解析(oracle触发器类型)

深入浅出:Oracle触发器类型解析

Oracle触发器,又称数据库触发器,是由用户定义的存储序列,与某些数据库操作有联系,并对对象实施操作以实现用户的要求的一种数据库对象。触发器可实现特定操作的自动化,功能也十分强大,其有多种类型,本文就这几种Oracle触发器类型加以详细的解析。

首先介绍的是Row Level Trigger,该触发器也被称为行级触发器。也就是说,当上接受变更的表上的数据行发生插入、更新、删除变更时,他就会被自动触发执行,它会把变更影响的每一行记录作为执行触发器定义的PL/SQL代码的参数,语法如下:

CREATE OR REPLACE TRIGGER 目标表_Bibliotheques_trigger

AFTER _的插入/UPDATE/DELETE

ON 目标表

FOR EACH ROW

BEGIN

–定义函数

END;

其次是Statement Level Trigger,它又称语句级触发器。当变更对应的表数据时,这种触发器会被调用一次,但并不关心发生了什么变更,只关心变更影响了表中多少行记录,以及它们的蓝图标识等。语法如下:

CREATE OR REPLACE TRIGGER 目标表_Bibliotheques_trigger

AFTER _的插入/UPDATE/DELETE

ON 目标表

BEGIN

–定义函数

END;

第三种是Before Trigger,也就是在操作执行前触发,既Boolean 返回值及简单表达式,可确定是否执行该操作,并且可随时更改操作的行为,可以实施保存前的数据验证。语法如下:

CREATE OR REPLACE TRIGGER 目标表_Bibliotheques_trigger

BEFOR _的插入/UPDATE/DELETE

ON 目标表

BEGIN

–定义函数

IF 表达式 THEN

RETURN TRUE;

ELSE

RETURN FALSE;

END IF;

END;

最后,还有一种叫做Each-Row Trigger,它也可以看成是行级触发器的特殊应用,只是它是在each row之前或者each row之后操作,语法如下:

CREATE OR REPLACE TRIGGER 目标表_Bibliotheques_trigger

BEFERE/AFTER _的插入/UPDATE/DELETE

ON 目标表

FOR each row

BEGIN

–定义函数

END;

以上就是Oracle触发器的几种类型,它们可以实现在特定情景下,实施定制的数据库操作,在提供常规Query功能以外,也可以提供及处理特殊需求,使系统数据库操作更加低耗,具有十分重要的意义。


数据运维技术 » 深入浅出:Oracle触发器类型解析(oracle触发器类型)