Oracle数据库中的触发器类型介绍(oracle触发器类型)

Oracle数据库中的触发器类型介绍

Oracle数据库支持3种不同类型的触发器:Row触发器、Statement触发器和System触发器。每种类型又有其自身特性,下面我将对此做个介绍。

Row触发器

行触发器主要用于数据改变后的实时监控,Oracle系统通过触发器,会在指定表或视图中进行特定操作时被调用,可有效保证数据库中数据的一致性。举个例子,假设每一次插入一条学生信息时,都要同时在另一个表中插入一条记录表示该生的成绩,此时Row触发器就很有用,它可以监听表中每一条记录的改变或插入情况,并自动将学生信息添加到相应的表中,从而实现此功能。

Oracle数据库中的Row触发器,有两种类型:BEFORE TRIGGER和AFTER TRIGGER。BEFORE TRIGGER会在进行插入、更新或删除操作时被调用,可以用来检查改变是否符合要求;AFTER TRIGGER会在属性改变后被调用,主要用于更新其他表或视图中的信息。 例如:

CREATE OR REPLACE TRIGGER trigger_name

BEFORE INSERT ON table_name

FOR EACH ROW

BEGIN

— 定义触发器

DBMS_OUTPUT.PUT_LINE(‘成功新增了一条学生信息!’);

END;

Statement触发器

Statement触发器可以监听Statement的发布,也就是SQL语句执行时,会调用触发器。例如当每次删除一条学生记录时,Statement触发器可以同时将这条记录中学生信息从另一个表或视图中删除,从而实现某种功能。

CREATE OR REPLACE TRIGGER trigger_name

AFTER DELETE ON table_name

FOR EACH ROW

BEGIN

–定义触发器

DBMS_OUTPUT.PUT_LINE(‘成功删除了一条学生信息!’);

END;

System触发器

System触发器也是Oracle数据库中的一种,只不不过它主要针对的是系统事件,如系统建库、数据库内变量的改变等,Oracle支持的System触发器如下:

(1)Create Database Trigger:来定义每次32位或64位数据库建立后执行的脚本;

(2)Logon Trigger:当用户登陆数据库时,可以针对特定的应用程序、账户或用户执行特定动作,如建立用户自定义临时表;

(3)Shutdown Trigger:可以定义当一个帐户关闭时调用的事件;

(4)INSTEAD OF Trigger:触发器会在表或视图被更新时被调用;

(5)SERVERERROR Trigger:用来定义服务器事件时调用的代码;

总结

以上便是Oracle数据库中三种不同类型的触发器介绍-Row触发器、Statement触发器、System触发器,这些触发器可以有效保持数据库中数据的一致性,同时也可以用来将数据库和应用程序的功能耦合在一起,从而更高效地实现功能。


数据运维技术 » Oracle数据库中的触发器类型介绍(oracle触发器类型)