触发器
一、概念:
触发器在数据库里是以独立的对象在存储,是由一个事件来启动运行。即: 触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。所以运行触发器就叫触发或点火(firing)。
ORACLE中的事件指的是 更新操作。如对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类似的操作
触发器常用来完成由数据库的完整性约束 难以完成的 复杂业务规则的 约束,或用来监视对数据库的各种操作,实现审计的功能。
二、触发器的类型和工作特点:
1、DML触发器
ORACLE可以在DML语句进行触发,可以在DML操作前或操作后进行触发,并且可以对每个行或语句操作上进行触发。
2、替代触发器(不常用)
由于在ORACLE里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发器。它就是ORACLE 8专门为进行视图操作的一种处理方法。
3、系统触发器(项目上也不常用)
ORACLE 8i 提供了第三种类型的触发器叫系统触发器。它可以在ORACLE数据库系统的事件中进行触发,如ORACLE系统的启动与关闭等。
三、编写触发器规则:
触发器是不接受参数信息的。
一个表上最多可有12个触发器[BEFORE INSERT
BEFORE INSERT FOR EACH ROW
AFTER INSERT
AFTER INSERT FOR EACH ROW
BEFORE UPDATE
BEFORE UPDATE FOR EACH ROW
AFTER UPDATE
AFTER UPDATE FOR EACH ROW
BEFORE DELETE