掌握Oracle触发器的类型从何而来?(oracle触发器类型)

Oracle触发器被用来实现某个功能,当你更新、删除或插入表数据时。它会在修改/ 删除/ 插入发生之前、之后或两者同时发生时被触发执行。Oracle 触发器有两个类型:Row-level触发器和Statement level触发器, 包括行级触发器(Row-Level Trigger)和语句级触发器(Statement-Level Trigger)。

首先,行级触发器(或行触发器)是绑定到表的触发器类型,它在表中每一行的插入、更新或删除时被触发执行。行级触发器使你能够完全控制行记录,使你对表中每一行特定的操作有相应的触发器代码,从而自动处理列触发器定义事件发生时发生的每一行。例如,你可以创建一个行触发器,在表行更新时,在另一个表中新增加一行:

CREATE TRIGGER trg_ins_upd_log

AFTER UPDATE ON logtable

FOR EACH ROW

BEGIN

INSERT INTO logtable_history (field1, field2, field3)

VALUES (:NEW.field1, :NEW.field2, :NEW.field3);

END;

其次, 语句级触发器(或语句触发器)在一条语句执行后或执行前被触发。语句触发器的作用类似于“be-fore”和“after” trigger,它是应用于整个处理,当一个单一SQL语句或者多个SQL语句组成的事务最后完成时,语句触发器将可以被触发。 例如, 你可以定义一个语句级触发器,检查更新是否在一段时间内对表进行修改:

CREATE TRIGGER trg_chk_update

BEFORE UPDATE ON emp_table

BEGIN

IF UPDATING THEN

IF :OLDS.UPD_DATE > sysdate -1 THEN

RAISE_APPLICATION_ERROR(-20001,’You cannot modify this record in the past 24 hours’);

END IF;

END IF;

END;

因此,熟悉Oracle触发器类型的重要性。触发器是用来自动完成一些重复的工作的工具,它的能提高系统效率、完成自动化数据,从而保护数据的完整性。上面分别介绍了行级和语句级触发器类型,有助于我们更好地掌握Oracle触发器类型。


数据运维技术 » 掌握Oracle触发器的类型从何而来?(oracle触发器类型)