简明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操作完成时自动执行特定动作以实现复杂的定义逻辑,也可用于实现数据完整性要求。