Oracle触发器的分类及其应用(oracle触发器类型)

《Oracle触发器的分类及其应用》

Oracle触发器是由一组逻辑脚本代码,按一定的执行规则触发在表上的一种数据库系统的对象,在指定的时间内,由某一事件触发Oracle触发器,Oralce触发器能够自动地完成特定的操作,从而提高数据库应用程序的效率。

Oracle触发器的分类主要有行级触发器和表级触发器:

第一种是行级触发器,它在每一行上被触发。行级触发器有INSERT,UPDATE,DELETE三种,每当数据库表中执行这三种操作,或者根据其他操作所触发的更新函数执行操作都会触发行级触发器。

例如:定义一行级delete触发器

create or replace trigger del_trigger 
after delete --定义触发器类型为删除
on test_table --定义触发器操作的对象表
for each row --定义触发器的作用为每行
begin
insert into del_log values (:old.name,sysdate)
end;

另一种是表级触发器,它不局限于某一行,而是在整个表上面触发。表级触发器有BEFORE,AFTER,INSTEAD OF三种类型,一般用于改变表中的某些数据,用于完成某些表级的功能。

例如:定义一表级insert触发器

Create or replace trigger ins_trigger 
before insert --定义触发器类型为插入
on test_table --定义触发器操作的对象表
begin
for i in 1.. :new.id do
:new.name := ‘Welcome ’ || :new.name;
end;
insert into ins_log values (:new.name,sysdate);
end;

Oracle触发器的应用环境主要有:约束违反时的处理,自动序号生成,日志跟踪;一些复杂的数据库应用方面,例如发送短信,发送邮件,对付程序中的余额不一致等。甚至还可以应用在程序报表的自动化生成,数据库性能监控,访问权限控制等等方面。

总之,Oracle触发器是一个强大的工具,它能够为用户提供一种高效的解决方案,可以更有效地完成相关任务。


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