OracleDatabase10g基础教程.ppt_第1页
OracleDatabase10g基础教程.ppt_第2页
OracleDatabase10g基础教程.ppt_第3页
OracleDatabase10g基础教程.ppt_第4页
OracleDatabase10g基础教程.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle Database 10g基础教程 清华大学出版社 第15章 触发器 Oracle Database 10g基础教程 清华大学出版社 教学目标 教学难点和重点 教学过程 Date1 Oracle Database 10g基础教程 清华大学出版社 教学目标 l了解触发器的特点和作用 l理解和掌握触发器的组成部分 l理解和掌握触发器的类型和应用特点 l理解和掌握触发器的系统事件的应用 l理解和掌握触发器的用户事件的特点 Date2 Oracle Database 10g基础教程 清华大学出版社 教学难点和重点 l触发器的特点和作用 l触发器的组成部分 l触发器的类型和应用 l触发器的系统事件的应用 l触发器的用户事件的特点 Date3 Oracle Database 10g基础教程 清华大学出版社 教学过程 15.1 概述 15.2 语句触发器 15.3 行触发器 15.4 instead of触发器 15.5 系统事件触发器 15.6 用户事件触发器 15.7 禁用触发器和事务处理 15.8 查看触发器信息 15.9 事件属性函数 Date4 Oracle Database 10g基础教程 清华大学出版社 15.1 概述 l使用触发器可以完成的功能包括: 允许或限制对表的修改 自动生成派生列 强制数据一致性 提供审计和日志记录 防止无效的事务处理 启用复杂的业务逻辑 Date5 Oracle Database 10g基础教程 清华大学出版社 触发器的组成 l在Oracle系统中,触发器有4个组成部分: 触发器名称 触发语句 触发器限制 触发操作 Date6 Oracle Database 10g基础教程 清华大学出版社 触发器名称 l触发器名称就是触发器的名称。数据库中 的每一个对象都有名称,触发器对象也不 例外。一般地,应该采用描述性名称来定 义触发器名称。 l在触发器名称中,应该包括触发器执行的 时间、执行的操作、涉及的表、涉及的列 等。 Date7 Oracle Database 10g基础教程 清华大学出版社 触发语句 l触发语句就是那些导致Oracle执行触发器的事件 。触发器事件可以是下面这些内容: 表和一些试图上的数据操纵语言语句,例如insert、 update、delete; 模式对象上的数据定义语言语句,例如create、alter 、drop; 数据库的启动和关闭; 系统错误; 各种系统活动 Date8 Oracle Database 10g基础教程 清华大学出版社 触发器限制 l即使导致触发器激活的事件发生了,但是 也不意味着Oracle就会执行它。 l激活事件发生之后,触发器首先判断在触 发器上是否存在限制,然后才会在执行触 发器之间评估所有的限制。 Date9 Oracle Database 10g基础教程 清华大学出版社 触发操作 l触发操作是触发器的主体。Oracle会在发 生如下两件事情时,才会执行代码块: 使用了合适的语句; 如果提供了触发器限制,则评估为真。 Date10 Oracle Database 10g基础教程 清华大学出版社 触发器的类型 l在Oracle系统中,包括了5种类型的触发器 。每一种类型的触发器都可以完成不同的 任务。这5种类型的触发器是: 语句触发器; 行触发器; instead of触发器; 系统事件触发器; 用户事件触发器。 Date11 Oracle Database 10g基础教程 清华大学出版社 15.2 语句触发器 l语句触发器是在表上或某些视图上执行的特定语 句的触发器。语句触发器能够与insert、update 或delete语句或这些语句的任意组合关联。用户 既可以在表的insert或update上使用单独的触发 器,也可以在表的insert和update组合上使用触 发器,甚至可以在单独的表上拥有多个insert语 句触发器。 l用户还可以在一个表上拥有多个insert语句触发 器。无论update触发器影响了多少行数据,也只 会调用一次update触发器。如果在表上有多个 update触发器,那么每一个触发器都会被调用一 次。 Date12 Oracle Database 10g基础教程 清华大学出版社 15.3 行触发器 l我们不仅可以建立为表上各个insert或update或delete语 句激活的触发器,而且还可以定义受到影响的各个行激活 的触发器。这些触发器称为行触发器。 l行触发器的定义方式与语句触发器类似,但是有两个例外 : 第一,行触发器要在触发器定义的触发语句中包含for each row 子句,还可以包含referencing子句。 第二,在beforefor each row触发器中,可以引用受到影响的 行值,甚至可以在触发器中设置这些值。 l行触发器的作用主要是可以让触发器的编写人员有能力为 主键提供默认设置,并且还可以格式化输入表中的数据。 Date13 Oracle Database 10g基础教程 清华大学出版社 15.4 instead of触发器 linstead of触发器是Oracle系统用来替换所使用 的实际语句而执行的触发器,与导致触发器激活 的语句执行之前或执行之后执行的语句触发器和 行触发器不同。 l例如,如果在视图上执行insert操作的用户,且 该视图上有instead of插入触发器,那么Oracle 系统就不会执行用户的触发器。然后,用户的触 发器就可以执行编码所要执行的所有操作。它可 以向基本表或另外的表中插入用户数据,还可以 对用户试图插入数据的事实进行日志记录,还可 以从完全没有关系的表中删除数据。当然,这些 操作都依赖于用户的编码。 Date14 Oracle Database 10g基础教程 清华大学出版社 15.5 系统事件触发器 lOracle系统还允许开发人员建立与特定系 统事件相关的触发器。这些特定事件是: 数据库启动 数据库关闭 服务器错误 l这些事件都是实例范围的。这些触发器不 像前面讲过的那些触发器一样,与特定的 表或视图关联。 Date15 Oracle Database 10g基础教程 清华大学出版社 15.6 用户事件触发器 l用户事件触发器也称为客户触发器,是能 够与insert、update、delete以外的用户登 录、注销、DML、DDL操作事件相关联的 触发器。 l我们通过一个示例,讲述如何使用用户事 件触发器。在这个示例中,通过创建用户 事件触发器,对用户scott所删除的所有对 象进行日志记录。 Date16 Oracle Database 10g基础教程 清华大学出版社 15.7 禁用触发器和事务处理 l到目前为止,我们已经学习了怎样使用create、 create or replace和drop语句来执行与触发器有 关的操作。如果希望改变触发器的主体,那么可 以使用create or replace语句。 l如果希望删除今后不再使用的触发器,那么可以 使用drop语句。但是,如果希望临时禁用触发器 ,那么该怎么办呢?可以使用alter语句,语法形 式如下所示: SQL alter trigger trigger_name disable; Date17 Oracle Database 10g基础教程 清华大学出版社 15.8 查看触发器信息 lOracle系统在其数据字典中存储了触发器 的所有信息。因此,可以通过数据字典得 到有关触发器的信息。当前用户使用的数 据字典视图是user_triggers,该数据字典 的结构如图1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论