Oracle数据库触发器类型及应用(oracle触发器类型)

触发器(Trigger)是Oracle数据库中重要的一个数据操作手段,它可以自动的执行用户定义的SQL语句,是数据库的软件化控制系统,它可以用来管理数据库表和字段,实现对数据的细节访问控制和维护。Oracle触发器的类型主要包括行触发器和表触发器:

1、行触发器(Row Trigger):行触发器指在更新,删除或插入一行时触发,该触发器是行级依赖型触发器,它被用于表格,触发器执行的动作应该如何取决于更新,删除或者插入的行的值。

例如有张考试成绩表,当考试成绩大于 90 时,要触发一个触发器,将该行数据写入到另外一张表中:

CREATE TRIGGER trigAfterUpdate

AFTER UPDATE ON exam_table

FOR EACH ROW

BEGIN

IF :new.score > 90 THEN

INSERT INTO exam_highscore_table ( student, score )

VALUES ( :new.student, :new.score );

END IF;

END;

2、表触发器(Table Trigger):表触发器指在对表中某个数据时进行触发,它不依赖于行数据,而是针对表级别,由此可以获得记录于表中的信息,根据表中不同类型的操作,分别有 BEFORE 和 AFTER 触发器来实现表触发器。

例如,使用BEFORE INSERT表触发器来验证被插入数据的合法性:

CREATE TRIGGER trigBeforeIns

BEFORE INSERT ON exam_table

BEGIN

IF :new.score

OR :new.score > 100 THEN

RAISE_APPLICATION_ERROR(-20000, ‘Score错误!’);

END IF;

END;

Oracle触发器的应用非常广泛,可以用它实现数据的变更记录,实现数据的完整性约束,实现数据审计,实现业务逻辑,也可以用于不同表之间数据的联动等。Oracle触发器是软件数据库技术不可缺少的重要功能之一,它不仅可以使数据库运行功能安全可靠,而且也可以大大提高对开发者编程效率。


数据运维技术 » Oracle数据库触发器类型及应用(oracle触发器类型)