2010年03月29日   码农之路   4,405 次浏览
Oracle触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。
一、功能:
1、允许/限制对表的修改
2、自动生成派生列,比如自增字段
3、强制数据一致性
4、提供审计和日志记录
5、防止无效的事务处理
6、启用复杂的业务逻辑
二、触发器触发时间有两种:after和before
三、触发器的语法:
CREATE [OR REPLACE] TIGGER 触发器名 触发时间 触发事件 ON 表名 [FOR EACH ROW] BEGIN pl/SQL语句 END |
其中:
触发器名:触发器对象的名称;
触发时间:指明触发器何时执行,该值可取;
before:表示在数据库动作之前触发器执行;
after:表示在数据库动作之后出发器执行;
触发事件:指明哪些数据库动作会触发此触发器;
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器;
表 名:数据库触发器所在的表;
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。
四、例子
下面的触发器在更新表t1之前触发,目的是不允许在周末修改表:
CREATE TIGGER t1 BEFORE INSERT OR UPDATE OLR DELETE //对整表更新前触发 ON t1 BEGIN IF(to_char(sysdate,'DY')='SUN' RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表t1'); END IF; END |
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。