Oracle触发器:各种类型介绍(oracle触发器类型)

和应用

Oracle触发器是一个自动运行在特定事件发生时做出相应动作的程序段,不管用户有没有做特定的“触发”(触发器的触发条件),而是由存储库的数据变化触发的。它可以用来提供数据的完整性、更新记录、维护复杂的回退线、记录系统日志、维护数据实体和其他用途。

Oracle触发器有多种类型,如表触发器、汇编触发器和系统触发器。

表触发器:表触发器在某表上定义,每当用户对表做insert,update,delete操作时,就会触发触发器。它可以在相关操作前和操作后执行一段对应的存储过程。下面是一个在my_table表上创建表触发器的示例代码:

CREATE TRIGGER my_trigger

BEFORE INSERT/UPDATE/DELETE ON my_table

FOR EACH ROW

BEGIN

CALL my_proc();

END;

汇编触发器:汇编触发器在某一特定存储过程上定义,当用户调用该存储过程时,就会触发触发器。下面是一个在my_proc存储过程上创建汇编触发器的示例代码:

CREATE TRIGGER my_trigger

BEFORE CALL ON my_proc

BEGIN

CALL my_proc2();

END;

系统触发器:系统触发器在某一触发条件(系统事件)上定义。它会由存储库系统自己触发,比如当数据库断开时,系统触发器会被激活,就会完成一些清理和回复操作。下面是一个定义在SERVERERROR事件上的系统触发器的示例代码:

CREATE TRIGGER my_trigger

AFTER SERVERERROR

BEGIN

CALL my_proc();

END;

Oracle触发器有许多极其有用的用途。它可以在插入,更新或删除数据表时实现存储过程自动调用,实现数据完整性、更新记录和系统日志等功能,以及维护表关联、有效性以及支持数据实体之间约束关系等。另外,触发器还可以被用来在应用程序执行完毕后清理的回退线。


数据运维技术 » Oracle触发器:各种类型介绍(oracle触发器类型)