简明Oracle数据库中触发器类型概述(oracle触发器类型)

Oracle Database Command Triggers Type Overview

Oracle数据库触发器用于实现自动对表或视图中执行DML操作时进行特定动作执行,自动完成一些复杂的定义逻辑,也可以作为一种实现数据完整性要求。Oracle数据库中触发器类型分为行触发器(Row Trigger)和表触发器(Table Trigger)两种。

行触发器(Row Trigger):行触发器是一种定义在列的行上的触发器,它的定义使被触发的操作只对对象中的某行表达式满足条件的行有效。比如:

CREATE TRIGGER avoid_duplicate

BEFORE INSERT OR UPDATE OR DELETE

ON t1

FOR EACH ROW

WHEN (new.Id = 12345 OR new.Id = 56789)

BEGIN

IF inserting THEN

INSERT INTO t2 VALUES (NEW.Id, SYSDATE);

END IF;

END;

此片触发器用于在向t1表中插入Id为12345或56789的行时向t2表中插入Id和系统日期。

表触发器(Table Trigger):表触发器是一种定义在表上的触发器,它的定义会在执行DML操作时被触发。比如:

CREATE OR REPLACE TRIGGER T_Update

BEFORE INSERT OR UPDATE OR DELETE

ON t1

BEGIN

UPDATE t2 SET modify_date = SYSDATE

END;

此片触发器用于执行DML操作时把t2表的modify_date更新为系统日期。

总之,Oracle数据库中触发器类型可分为行触发器(Row Trigger)和表触发器(Table Trigger)两种,它们可以在DML操作完成时自动执行特定动作以实现复杂的定义逻辑,也可用于实现数据完整性要求。


数据运维技术 » 简明Oracle数据库中触发器类型概述(oracle触发器类型)