- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章理论课触发器和内置程序包
《Oracle 数据库应用 》理论课
触发器和内置程序包
本章技能目标
理解和应用触发器
了解内置程序包
1. 触发器
触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区
别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。
触发器可以用于加载Oracle 的默认功能,提供高度可定制的数据库,触发器能够执行的功
能有:
1、 允许/ 限制对表的修改
2、 自动生成派生列,比如自增字段
3、 强制数据一致性
4、 提供审计和日志记录
5、 防止无效的事务处理
6、 启用复杂的业务逻辑
触发器与特定的表或视图相关联,用于检查对表或视图所做的数据修改。无论正在执行操作的
用户身份如何,触发器都能够在它们执行操作时生效。当INSERT,DELETE ,UPADTE 等事件
发生在表或视图中时,就会激活触发器的代码。
用于创建触发器的语法为:
CREATE [OR REPLACE] TRIGGER trigger_name
AFTER | BEFORE | INSTEAD OF
[INSERT] [[OR] UPDATE [OF column_list]]
[[OR] DELETE]
ON table_or_view_name
[REFERENCING {OLD [AS] old / NEW [AS] new}]
[FOR EACH ROW]
[WHEN (condition)]
pl/sql_block;
其中:
第8 章 触发器和内置程序包
before 和after :指在事件发生之前或之后激活触发器。
instead of :如果使用此子句,表示可以执行触发器代码来代替导致触发器调用的事件。
insert、delete 和update :指定构成触发器事件的数据操纵类型,update 还可以制定列的列表。
referencing :指定新行(即将更新)和旧行(更新前)的其他名称,默认为new 和old 。
table_or_view_name :指要创建触发器的表或视图的名称。
for each row:指定是否对受影响的每行都执行触发器,即行级触发器,如果不使用此子句,则
为语句级触发器。
when :限制执行触发器的条件,该条件可以包括新旧数据值得检查。
declareend :是一个标准的PL/SQL 块。
例1 演示如何在SCOTT 模式的EMP 表上创建触发器。
例1:
CREATE OR REPLACE TRIGGER biu_emp_deptno
BEFORE INSERT OR UPDATE OF deptno
ON emp
FOR EACH ROW
WHEN (New.deptno 40)
BEGIN
:Nm := 0;
END;
/
提示:如果创建触发器时出现错误,请使用SHOW ERRORS 命令查看详细的错误信息。
1.1 触发器的组成部分
触发器由三部分组成:
触发器语句(事件)
定义激活触发器的 DML 事件和 DDL 事件
触发器限制
执行触发器的条件,该条件必须为真才能激活触发器
触发器操作(主体)
包含一些 SQL 语句和代码,它们在发出了触发器语句且触发限制的值为真时运
行
触发器语句
触发器语句是那些可以导致触发器的事件,即在表或视图上执行的INSERT ,DELETE ,UPADTE
之类的DML 语句,在模式对象上执行的DDL 语句或数据库事件。
在例1 触发器中,第2 行至第四行,如下代码所示,构成了触发器语句。
BEFORE INSERT OR UPDATE OF deptno
ON emp
FOR EACH ROW
这就是说,触发器会在这些事件之前隐式执行:当对EMP 表执行INSERT 语句时或对EMP 表
的deptno 列进行UPADTE 时。
您可能关注的文档
- 百分率应用题课件1.ppt
- 百分数的意义02.ppt
- 的发现及表达分析.PDF
- 盐边县文化体育广播影视新闻出版局.doc
- 目的基因的克隆—PCR法扩增目的基因片断.ppt
- 省外院校在晋艺术类专业考试各考点日程安排整理.doc
- 省道阜南长安至曹集段改建工程.doc
- 省高建局 安全生产法律知识.ppt
- 知识管理(KM)的难点及其对策.PDF
- 矿井规划与井田开拓.pdf
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)