chapter17触发器.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chapter17触发器

Chapter 17 触发器 数据库触发器概述 数据库触发器概念 数据库触发器作用 创建触发器 DML触发器 INSTEAD-OF触发器 系统触发器 变异表触发器 其他触发器问题 数据库触发器概念 触发器命名块的一种 触发器的执行是自动进行的,当相应事件发生时就会激发触发器的执行。 触发器不接受任何参数 激发触发器的事件包括DML(INSERT、UPDATE、DELETE)操作和系统事件(如LOGON、LOGOFF) 触发器(TRIGGER)作用 维护那些通过创建表时的声明约束不可能实现的复杂的完整性约束 通过记录已进行的改变及是谁进行了该项改变来检查一个表中的信息。 当一个表发生改变时,自动向其他程序发送需要采取行动的信号 在一个发布-预定环境中发布关于各种事件的信息。 触发器分类 DML触发器 INSERT、DELETE、UPDATE INSTEAD-OF 触发器 只可以定义为视图的触发器 系统触发器 数据库启动或关闭之类的系统事件发生时触发 在执行诸如创建表之类的DDL操作时触发 创建DML触发器 CREATE [OR REPLACE ] TRIGGER trigger_name {BEFORE|AFTER} triggering_event ON table_name [referencing_clause] [FOR EACH ROW] [WHEN trigger_condition] DECLARE … BEGIN … END; DML触发器 触发事件 触发时间 DML触发器种类 不同类型DML触发器执行顺序 相同类型DML触发器执行顺序 行级触发器中的相关标识符 行级触发器中的WHEN子句 触发器主体 触发器谓词 DML触发器 不同类型触发器执行顺序 如果存在,执行语句级别之前的触发器 对于受语句影响的每一行 A、如果存在,执行行级别之前的触发器 B、执行语句本身 C、如果存在,执行行级别之后的触发器 如果存在,执行语句级别之后的触发器 在行级别触发器中中相关标识符 标识符 :OLD 、:NEW 引用方式: :old.field和:new.field (执行部分) old.field 和new.field (WHEN条件中) 在不同操作中的意义 在行级别触发器中中相关标识符 可以为OLD、NEW起别名 REFERENCING [OLD AS old_name][NEW AS new_name] 注意事项: 是伪记录,不能作为整个记录进行赋值或引用 不能传递给带triggering_table%ROWTYPE参数的过程和函数 如果触发器是建立在嵌套表上,;old和;new都执行嵌套表的行,:parent指向父表中的当前行。 行级触发器中的WHEN子句 触发器主体 触发器谓词 判断当前执行的触发器到底是有那个DML操作激发的。 触发器谓词 Instead-of触发器 特点 只能定义在视图上 Instead-of触发器是行级触发器 Instead-of 触发器由DML操作激发,而DML操作本身并不执行 作用 修改一个本来不可以修改的视图 修改视图中某嵌套表列的列 如果视图中包含下列任何一项,则不可修改 集合操作符 聚集函数 GROUP BY、CONNECT BY 或START WITH子句 DISTINCT 连接(部分包含连接的视图) 创建INSTEAD OF触发器 CREATE [OR REPLACE ] TRIGGER trigger_name INSTEAD OF triggering_event ON view_name [referencing_clause] FOR EACH ROW [WHEN trigger_condition] DECLARE … BEGIN … END; 系统触发器 触发器事件及其执行时间 基本语法 触发器级别 事件属性函数 SERVERERROR事件 系统触发器事务问题 系统触发器和WHEN子句 系统触发器事件及执行时间 DML、Instead-Of触发器 由DML事件出发 系统触发器 DDL事件触发(CREATE、ALTER、DROP) 数据库事件触发(服务器启动/关闭、用户登陆/注销以及服务器错误) 系统触发器事件 创建系统触发器 CREATE [OR REPLACE] TRIGGER [schema.]trigger_name [BEFORE|AFTER] {ddl_event_list|database_even

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档