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
赞 赏
申明:除非注明,本站文章均为原创,转载请以链接形式标明本文地址。 如有问题,请于一周内与本站联系,本站将在第一时间对相关内容进行处理。
本文地址: http://www.yyjjssnn.cn/articles/361.html
相关阅读: ORACLE, Oracle, 触发器

>>> Hello World <<<

这篇内容是否帮助到你了呢?

如果你有任何疑问或有建议留给其他朋友,都可以给我留言。

:wink: :twisted: :surprised: :smile: :smile9: :smile8: :smile7: :smile6: :smile5: :smile56: :smile55: :smile54: :smile53: :smile52: :smile51: :smile50: :smile4: :smile49: :smile48: :smile47: :smile46: :smile45: :smile44: :smile43: :smile42: :smile41: :smile40: :smile3: :smile39: :smile38: :smile37: :smile36: :smile35: :smile34: :smile33: :smile32: :smile31: :smile30: :smile2: :smile29: :smile28: :smile27: :smile26: :smile25: :smile24: :smile23: :smile22: :smile21: :smile20: :smile1: :smile19: :smile18: :smile17: :smile16: :smile15: :smile14: :smile13: :smile12: :smile11: :smile10: :smile0: :sad: :rolleyes1: :redface: :razz: :question: :neutral: :mrgreen: :mad: :lol: :idea: :exclaim: :evil: :eek: :cry: :cool: :confused: :biggrin: :arrow:

友情链接: 程序员刘杨 刘杨
Copyright 2003~2018 保留所有权利 | 网站地图
备案号:湘ICP备14001005号-2

湘公网安备 43011102001322号