- 1、本文档共19页,可阅读全部内容。
- 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第十讲:触发器
武汉卡信维信息技术有限公司——天佑内训 武汉卡信维信息技术有限公司——天佑内训 武汉卡信维信息技术有限公司——天佑内训 Oracle 9i 刘杰 第十讲:触发器 什么是触发器 触发器是当特定事件出现时自动执行的代码块。触发器与子程序的区别在于:过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。Oracle会在事件请求触发器时,执行适当的触发器。 为什么使用触发器:维护数据的完整性,尤其是庞大的数据 创建触发器 Create or replace trigger 触发器名 before | after | instead of --指定是在完成操作前还是操作后触发触发器 Insert [or delete] [or update] of 列名 on 表名|视图名 [ REFERENCING [ NEW AS new_row_name ] [ OLD AS old_row_name ] ] –给new或者old关键字定义一个别名,在触发器操作中用别名代替new或者old使用 [for each row] --指定每行触发一次,默认情况下,数据库触发器每个表触发一次 [When (条件)] declare Begin exception End; 当触发器被同名触发器替换时,上一个触发器进行的DML操作自动被提交。 触发器的类型 行级触发器 行级触发器对DML语句影响的每个行执行一次。例如, UPDATE语句影响多行,就会对每行都激活一次行触发器。行级触发器是触发器中最常用的一种。可以在CREATE TRIGGER命令中指定FOR EACH ROW子句创建行级触发器。 由于触发器是事件驱动的,因此可以设置触发器在这些事件之前或者之后执行,即在执行DML语句之前或之后执行。在触发器中,可以引用DML语句中涉及的旧值或新值。“旧”是指在DML语句之前存在的数据。UPDATE和DELETE通常引用旧值。“新”是指由DML语句创建的数据值(如插入记录中的列)。 如果需要通过触发器在插入行中设置一个列值,就应该使用BEFORE INSERT触发器访问“新”值。使用AFTER INSERT触发器不允许设置插入值,因为该行已经插入表中。 在审计应用程序中经常使用AFTER行级触发器,直到行被修改才会触发它们。行的成功修改表明此行已经通过该表定义的完整性约束。 举例:在 SCOTT模式的EMP表上创建行级触发器。 create or replace trigger c_emp_deptnobefore insert or update of deptnoon empfor each rowwhen (new.deptno40)begin :m:=0;end; 触发器的组成 触发器语句 触发器语句是那些可以导致触发器的事件,即在表和视图上实行的INSERT、DELETE、UPDATE之类的DML语句,在模式对象上执行的DDL语句或数据库事件。 before insert or update of deptno on empfor each row 这就是说,触发器会在触发器操作事件之前隐式执行;当对EMP表执行INSERT语句或对EMP表的deptno列进行UPDATE 时。而且触发器将在受到影响的每一行上执行一次。但是触发器是否真正执行还要检查触发器限制条件,只有满足限制条件才会执行。 触发器的组成 触发器条件 触发器限制条件包含一个布尔表达式,该值必须为“真”才能激活触发器。如果该值为“假”或“未知”,将不运行出发操作。 when (new.deptno40) 这就是说,如果列deptno的新值不等于40,触发器就会执行。 触发器的组成 触发器操作 触发器操作是触发器的主体,包含一些SQL语句和代码,这些代码在执行触发器语句且触发器限制条件的值为“真”时运行。行级触发器允许出发操作中的语句访问行的列值。 begin :m:=0;end; 这段代码将列comm新值设为0。 举例:测试创建的触发器是否有效 insert into values (8000,Philip,MANAGER,null,31-12月-2002,6000,500,30); insert into values (8001,Tom,MANAGER,null,31-12月-2002,6000,500,40); commit; 上述语句在EMP表中插入了两条记录,并为每行记录指定了 COMM列的值。用
您可能关注的文档
- PBC绩效管理.ppt
- PB管道培训教程-PB材料概略.ppt
- pb840操作界面.ppt
- PB管道培训教程-焊接技术.ppt
- PCBA_制程介绍.ppt
- MYFM1029石家庄分公司“DJ大赛”招商案.pptx
- MyCRM案例介绍.ppt
- MYSELF创意事务所推介方案.ppt
- myml膜颜膜丽品牌创想.ppt
- MYUTUDU是一个制作在线网络课程的工具.ppt
- 2025年02月云南民族大学硕士以上人员(6人)笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月浙江宁波市鄞州区营商环境建设办公室公开招聘编外人员1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年01月贵州毕节市第一批次“人才强市”引才649人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月山东临沂市临沭县部分事业单位公开招聘综合类岗位人员26人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月山东临沂市罗庄区部分事业单位公开招聘综合类岗位人员15人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月山东临沂沂河新区部分事业单位公开招聘综合类岗位人员12人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月日照市莒县事业单位初级综合类岗位人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025山西省运城新绛县绛州文化旅游发展投资有限公司招聘员工笔试参考题库附带答案详解.doc
- 2025山东东营市振河劳务有限责任公司招聘1人笔试参考题库附带答案详解.doc
- 2025年02月山东威海临港经济技术开发区镇属事业单位公开招聘工作人员12人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
文档评论(0)