掌握Oracle触发器的基本类型(oracle触发器类型)
Oracle触发器是数据库可以嵌入其中的一段程序逻辑,它可以在SQL数据库操作除了SELECT以外的其它操作(即DML操作)发生前或发生后执行一定的逻辑操作,使数据库能够实现自动化操作。Oracle数据库支持多种触发器,这些触发器可以满足不同的业务需求。
Oracle触发器有4种基本类型:
1、表级触发器:当指定的表上的特定表达式为真时,触发器便会被触发,这是最常用的触发器类型,它可以捕获发生在表上的insert,delete,update操作;
2、视图触发器:当对指定的视图执行insert,update和delete操作时,触发器或会被触发;
3、数据库触发器:当全局级别上的任一操作发生时,并且触发器针对此操作发生时,就会被触发,既可以用来捕获启动和关闭数据库操作,也可以捕获任何其它数据库操作;
4、功能触发器:当与指定函数相关的INSTEAD OF操作发生时,触发器就会被触发,这种触发器称之为功能触发器。
基本上,Oracle触发器有2个基本概念,一是触发语句,定义触发器何时和怎样被触发;二是触发器体,定义触发器何时执行数据库操作。触发器可以使用BEFORE,AFTER,ROW,STATEMENT和INSERT,UPDATE,DELETE等模式创建,最后可以将触发器编译,编译后触发器可以被应用。
下面是一个表级触发器的示例,它的作用就是当插入数据库表的部门名称的时候,将部门的创建日期设置为当前日期:
— 创建一个名为departmentInsertTrigger的表级触发器
create trigger departmentInsertTrigger
before insert on departments
for each row
begin
:new.create_date := sysdate;
end;
/
— 编译触发器
alter trigger departmentInsertTrigger compile;
— 查看触发器状态
select STATUS, TRIGGER_NAME
from USER_TRIGGERS
where TRIGGER_NAME = ‘DEPARTMENTINSERTTRIGGER’
以上就是Oracle中4种基本触发器的类型和详细介绍,只有掌握了这4种触发器类型,才能更好地使用Oracle触发器,灵活地实现应用程序的逻辑需求。