Oracle 触发器归类为表触发器,库触发器,事件触发器。本文将介绍 Oracle 触发器实践技巧,帮助读者进一步掌握触发器。
### 一、表触发器
表触发器是绑定在表或视图上的触发器,当表上发生插入,更新,删除操作,表触发器可以实现对表的各种操作,Oracle的表触发器可以始终与目标表保持一致。Oracle表触发器支持BEFORE,AFTER,INSTEAD OF三种操作,他们针对不同时期表上操作,所以可以针对性操作数据,比如,在进行插入或更新前想做一些处理,那么可以采用BEFORE类型,而在操作后要做一些处理,可以采用AFTER类型,这有助于控制数据不出错。
示例:
“` SQL
create trigger
AFTER insert or update or delete
on
for each row
begin
—
end;
### 二、库触发器
库触发器是绑定到数据库的触发器,主要满足在库(模式)上发生插入,更新,删除,提供一种特殊的机制,无论对库(模式)的任何操作,触发器都会被调用,它有助于记录库/模式操作日志,监视数据库中的表操作,做业务操作,库触发器不能执行dml操作,只允许执行dml,不能用于select操作。
示例:
``` SQL
create or replace trigger
after
on
begin
-- 主体
end;
### 三、事件触发器
事件触发器是Oracle数据库中定期执行某个操作的一类触发器,也就是当到达某个规定的时间或者触发器时,它会自动启动,基于时间的触发器是针对周期性的活动,可以在给定的时间间隔调用存储过程,例如定期备份,定期清理等,而基于监听器触发器针对某个事件,如某个用户登录,某个程序崩溃等,执行完后选择性的发出邮件通知等。
示例:
“` SQL
create or replace trigger
after logon on database
begin
// 主体
end;
综上所述,Oracle触发器主要分为三种:表触发器,库触发器,事件触发器,可以针对性操作数据,定时执行任务,在大型系统的设计过程中,触发器的使用可以有效降低系统的逻辑错误,有效利用Oracle触发器,能够提高系统的稳定性和简化系统架构。