OracleDatabase10g基础教程.ppt

上传人:sh****n 文档编号:6393977 上传时间:2020-02-24 格式:PPT 页数:19 大小:272.31KB
返回 下载 相关 举报
OracleDatabase10g基础教程.ppt_第1页
第1页 / 共19页
OracleDatabase10g基础教程.ppt_第2页
第2页 / 共19页
OracleDatabase10g基础教程.ppt_第3页
第3页 / 共19页
点击查看更多>>
资源描述
2020年2月24日 第1页 第15章触发器 OracleDatabase10g基础教程清华大学出版社 教学目标教学难点和重点教学过程 2020年2月24日 第2页 教学目标 了解触发器的特点和作用理解和掌握触发器的组成部分理解和掌握触发器的类型和应用特点理解和掌握触发器的系统事件的应用理解和掌握触发器的用户事件的特点 2020年2月24日 第3页 教学难点和重点 触发器的特点和作用触发器的组成部分触发器的类型和应用触发器的系统事件的应用触发器的用户事件的特点 2020年2月24日 第4页 教学过程 15 1概述15 2语句触发器15 3行触发器15 4insteadof触发器15 5系统事件触发器15 6用户事件触发器15 7禁用触发器和事务处理15 8查看触发器信息15 9事件属性函数 2020年2月24日 第5页 15 1概述 使用触发器可以完成的功能包括 允许或限制对表的修改自动生成派生列强制数据一致性提供审计和日志记录防止无效的事务处理启用复杂的业务逻辑 2020年2月24日 第6页 触发器的组成 在Oracle系统中 触发器有4个组成部分 触发器名称触发语句触发器限制触发操作 2020年2月24日 第7页 触发器名称 触发器名称就是触发器的名称 数据库中的每一个对象都有名称 触发器对象也不例外 一般地 应该采用描述性名称来定义触发器名称 在触发器名称中 应该包括触发器执行的时间 执行的操作 涉及的表 涉及的列等 2020年2月24日 第8页 触发语句 触发语句就是那些导致Oracle执行触发器的事件 触发器事件可以是下面这些内容 表和一些试图上的数据操纵语言语句 例如insert update delete 模式对象上的数据定义语言语句 例如create alter drop 数据库的启动和关闭 系统错误 各种系统活动 2020年2月24日 第9页 触发器限制 即使导致触发器激活的事件发生了 但是也不意味着Oracle就会执行它 激活事件发生之后 触发器首先判断在触发器上是否存在限制 然后才会在执行触发器之间评估所有的限制 2020年2月24日 第10页 触发操作 触发操作是触发器的主体 Oracle会在发生如下两件事情时 才会执行代码块 使用了合适的语句 如果提供了触发器限制 则评估为真 2020年2月24日 第11页 触发器的类型 在Oracle系统中 包括了5种类型的触发器 每一种类型的触发器都可以完成不同的任务 这5种类型的触发器是 语句触发器 行触发器 insteadof触发器 系统事件触发器 用户事件触发器 2020年2月24日 第12页 15 2语句触发器 语句触发器是在表上或某些视图上执行的特定语句的触发器 语句触发器能够与insert update或delete语句或这些语句的任意组合关联 用户既可以在表的insert或update上使用单独的触发器 也可以在表的insert和update组合上使用触发器 甚至可以在单独的表上拥有多个insert语句触发器 用户还可以在一个表上拥有多个insert语句触发器 无论update触发器影响了多少行数据 也只会调用一次update触发器 如果在表上有多个update触发器 那么每一个触发器都会被调用一次 2020年2月24日 第13页 15 3行触发器 我们不仅可以建立为表上各个insert或update或delete语句激活的触发器 而且还可以定义受到影响的各个行激活的触发器 这些触发器称为行触发器 行触发器的定义方式与语句触发器类似 但是有两个例外 第一 行触发器要在触发器定义的触发语句中包含foreachrow子句 还可以包含referencing子句 第二 在before foreachrow触发器中 可以引用受到影响的行值 甚至可以在触发器中设置这些值 行触发器的作用主要是可以让触发器的编写人员有能力为主键提供默认设置 并且还可以格式化输入表中的数据 2020年2月24日 第14页 15 4insteadof触发器 insteadof触发器是Oracle系统用来替换所使用的实际语句而执行的触发器 与导致触发器激活的语句执行之前或执行之后执行的语句触发器和行触发器不同 例如 如果在视图上执行insert操作的用户 且该视图上有insteadof插入触发器 那么Oracle系统就不会执行用户的触发器 然后 用户的触发器就可以执行编码所要执行的所有操作 它可以向基本表或另外的表中插入用户数据 还可以对用户试图插入数据的事实进行日志记录 还可以从完全没有关系的表中删除数据 当然 这些操作都依赖于用户的编码 2020年2月24日 第15页 15 5系统事件触发器 Oracle系统还允许开发人员建立与特定系统事件相关的触发器 这些特定事件是 数据库启动数据库关闭服务器错误这些事件都是实例范围的 这些触发器不像前面讲过的那些触发器一样 与特定的表或视图关联 2020年2月24日 第16页 15 6用户事件触发器 用户事件触发器也称为客户触发器 是能够与insert update delete以外的用户登录 注销 DML DDL操作事件相关联的触发器 我们通过一个示例 讲述如何使用用户事件触发器 在这个示例中 通过创建用户事件触发器 对用户scott所删除的所有对象进行日志记录 2020年2月24日 第17页 15 7禁用触发器和事务处理 到目前为止 我们已经学习了怎样使用create createorreplace和drop语句来执行与触发器有关的操作 如果希望改变触发器的主体 那么可以使用createorreplace语句 如果希望删除今后不再使用的触发器 那么可以使用drop语句 但是 如果希望临时禁用触发器 那么该怎么办呢 可以使用alter语句 语法形式如下所示 SQL altertrigger trigger namedisable 2020年2月24日 第18页 15 8查看触发器信息 Oracle系统在其数据字典中存储了触发器的所有信息 因此 可以通过数据字典得到有关触发器的信息 当前用户使用的数据字典视图是user triggers 该数据字典的结构如图15 17所示 2020年2月24日 第19页 15 9事件属性函数 在Oracle系统中 用户可以获取导致触发器执行的事件的特定属性 在触发器主体中调用适当的函数就可以访问这些属性 这些函数都是以ora 开头的 表15 1列出了这些函数的列表和简单描述
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!