- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 触 发 器 8.1 触发器简介 触发器是一种特殊的存储过程,当特定对象上的特定事件出现时,将自动触发执行的代码块。触发器比数据库有更精细和更复杂的数据控制能力。触发器与过程的区别在于:过程要由用户或应用程序显式调用,而触发器是满足特定事件时在数据库后台自动执行。数据库触发器具有以下功能: (1) 实现复杂的数据完整性规则。 (2) 自动生成派生数据。 (3) 提供审计和日志记录。 (4) 启用复杂的业务逻辑。 (5) 实施更复杂的安全性检查。 (6) 防止无效的事务处理。 8.2 触发器的格式 所有的触发器,不管其类型如何,都可以使用相同的语法创建。下面先简单了解一下Oracle产生数据库触发器的基本语法: create [or replace] trigger 触发器名 触发时间 触发事件 on 对象名 [for each row] pl/sql 语句 说明:触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。 触发时间:指明触发器何时执行,取值有before和after。 before表示在数据库动作之前触发器执行; after表示在数据库动作之后触发器执行。 触发事件:指明哪些数据库动作会触发此触发器,比如, insert表示数据库插入会触发此触发器; update表示数据库修改会触发此触发器; delete表示数据库删除会触发此触发器。 对象名:数据库触发器所在的表名、数据库名或模式用户名。 for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。 【例8.1】 在student表上建立触发器。在更新表student之前触发,目的是不允许在周末修改表。 SQLcreate trigger student_secure 2? before insert or update or delete? --对整表在插入、更新、删除前触发 3? on student 4? begin 5? if(to_char(sysdate,DY)=SUN) then 6? RAISE_APPLICATION_ERROR(-20600,不能在周末修改表student); 7? end if; 8? end; 9 / 一般来说,触发器由触发器名称、触发器语句、触发器限制和触发器操作几部分组成。下面是创建触发器的通用语法: 1 CREATE [OR REPLACE] TRIGGER trigger_name 2 {BEFORE | AFTER | INSTEAD OF} 3 triggering_event { dml_event_list | ddl_event_list| database_event_list} 4 ON trigger_object { [database] | [schema.] [table_or_view_name]} 5 referencing_clause 6 [FOR EACH ROW] 7 [WHEN trigger_condition] 8 trigger_body 其中,第1行指明创建的触发器名称,第2~6行为触发器语句,第7行为触发器限制,第8行为触发器操作。 说明: trigger_name是触发器的名称。 触发器语句是指在相应数据库对象上触发的时间及导致触发器执行的事件等。tiggering_event表示触发事件,比如表或视图上的dml语句、ddl语句、数据库关闭或启动等。其中,dml_event_list是一个或多个DML事件,包括INSERT、UPDATE、DELETE语句,事件之间用“OR”分隔;ddl_event_list是一个或多个DDL事件,包括CREATE、ALTER或DROP语句;database_event_list是一个或多个数据库事件,包括服务器的启动或关闭、用户的登录或退出以及服务器错误等。referencing_clause用来引用正在处于修改状态下的行中的数据。 WHEN子句代表触发器限制条件,包含一个布尔表达式,即在 WHEN子句中如果指定trigger_condition,则首先对该条件求值。只有在该条件为真值时才运行。 触发器操作即触发器主体包含一些SQL语句和代码。 【例8.2】 在employees表上构建一个触发器,在插入或修改部门号时触发,如果该雇员部门号不是“80”,则comm
您可能关注的文档
- Oracle9i关系数据库实用教程(第二版)蔡立军电子教案及教学大纲 教学大纲.doc
- Oracle9i关系数据库实用教程电子教案 第八章 Oracle9i常用工具.ppt
- Oracle9i关系数据库实用教程电子教案 第二章 Oracle体系结构.ppt
- Oracle9i关系数据库实用教程电子教案 第九章 Oracle的性能优化.ppt
- Oracle9i关系数据库实用教程电子教案 第六章 Oracle的安全管理.ppt
- Oracle9i关系数据库实用教程电子教案 第七章 数据库的备份与恢复.ppt
- Oracle9i关系数据库实用教程电子教案 第三章 SQL语言基础.ppt
- Oracle9i关系数据库实用教程电子教案 第十一章 应用实例.ppt
- Oracle9i关系数据库实用教程电子教案 第十章 Oracle9i网络功能.ppt
- Oracle9i关系数据库实用教程电子教案 第四章 PLSQL编程.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- 水利工程质量检测员网上继续教育考试题库及答案混凝土专业试题及答案.pdf VIP
- 李白《将进酒》原文及赏析通用5篇.doc VIP
- 《自动喷水灭火系统施工及验收规范》GB50261-2017.docx VIP
- 小学英语_Unit 4 Lesson3 There are twenty pupils in my class教学设计学情分析教材分析课后反思.doc
- 2025贵州省旅游产业发展集团有限公司招聘115人备考试题及答案解析.docx VIP
- 《凤凰男的豪门贤妻》剧本整本.docx VIP
- 2013年水利工程质量检测员网上继续教育考试题库及答案-混凝土专业.pdf VIP
- 消毒技术规范2022.docx VIP
- 阳台封装施工安全协议书5篇.docx
- 消毒技术规范(2022).docx VIP
文档评论(0)