深入浅出Oracle触发器类型探究(oracle触发器类型)


数据库领域中常用的就是Oracle。Oracle触发器是用来记录在数据表上的行或者列变动信息,当用户对这些行或列上进行一定操作时,会触发这个触发器,而该触发器将会执行一段SQL语句或者PL/SQL语句等,从而实现一定的功能。更进一步说,Oracle触发器就是行和列上监控特定范围内的Insert、Update、Delete三个操作,从而调用其他模块实现数据表约束,功能增强以及开发者自定义的触发功能。

Oracle触发器一般可以分为两种:Row Trigger和Statement Trigger。Row Trigger的触发功能是基于行层面上的特定操作,而Statement Trigger是基于语句层面上的特定操作。

Row Trigger指的是对表数据行级别的操作触发机制,它可以检测对表数据行进行Insert、Update 和Delete 这三个操作类型,每次此类操作都会触发Row Trigger,在其中可以使用ROWID这个特殊的列名,用于定位操作的具体行的数据,以实现业务的完整性,Row Trigger一般可以分为BEFORE (执行前)和AFTER (执行后)两种Trigger。

例如:

CREATE OR REPLACE TRIGGER Trigger before
INSERT OR UPDATE OR DELETE
ON 表名 for each row
BEGIN
// Your code comes here
END;

Statement Trigger是对数据表进行整体操作,而不是对某一行进行操作,而这种类型的触发器只能检测INSERT或UPDATE命令,每次整体操作都会触发Statement Trigger,可以用来实现数据完整性约束,主要用于实现表中每当更新时,会进行相关完整性检查,比如是否外键关联等,一般可以分为BEFORE (执行前)和AFTER (执行后)两种Trigger。

例如:

CREATE OR REPLACE TRIGGER Trigger after
INSERT OR UPDATE
ON 表名
BEGIN
// Your code comes here
END;

Oracle触发器因其实时性、自动化功能,是用来替代程序代码的非常好的手段,可以实现数据库的完整性,增强程序的可用性,同时又不会占用应用程序的内存,用户只需要正确的设置触发器,就可以完成一些复杂的操作,从而节省开发时间和提高程序的性能。