




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle触发器语法(一) 一 Oracle触发器语法触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。功能:1、 允许/限制对表的修改2、 自动生成派生列,比如自增字段3、 强制数据一致性4、 提供审计和日志记录5、 防止无效的事务处理6、 启用复杂的业务逻辑触发器触发时间有两种:after和before。1、触发器的语法:CREATE OR REPLACE TIGGER触发器名 触发时间 触发事件ON表名FOR EACH ROWBEGINpl/sql语句END其中:触发器名:触发器对
2、象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。触发时间:指明触发器何时执行,该值可取:before-表示在数据库动作之前触发器执行;after-表示在数据库动作之后出发器执行。触发事件:指明哪些数据库动作会触发此触发器: insert:数据库插入会触发此触发器;Oracle触发器语法(二) update:数据库修改会触发此触发器; delete:数据库删除会触发此触发器。表 名:数据库触发器所在的表。for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。2、举例:下面的触发器在更新表auths之前触发,目的是不允许在周末
3、修改表:createtriggerauth_securebeforeinsertorupdateordelete/对整表更新前触发 onauthsbeginif(to_char(sysdate,DY)=SUNRAISE_APPLICATION_ERROR(-20600,不能在周末修改表auths);endif;end例子:CREATEORREPLACETRIGGERCRM.T_SUB_USERINFO_AUR_NAMEAFTERUPDATEOFSTAFF_NAME ONCRM.T_SUB_USERINFOREFERENCINGOLDASOLDNEWASNEWFOREACHROWdeclareb
4、eginif:NEW.STAFF_NAME!=:OLD.STAFF_NAMEthenbegin 客户投诉 updateT_COMPLAINT_MANAGEsetSERVE_NAME=:NEW.STAFF_NAMEwhereSERVE_SEED=:OLD.SEED; 客户关怀 updateT_CUSTOMER_CAREsetEXECUTOR_NAME=:NEW.STAFF_NAME whereEXECUTOR_SEED=:OLD.SEED; 客户服务updateT_CUSTOMER_SERVICEsetEXECUTOR_NAME=:NEW.STAFF_NAME whereEXECUTOR_SEE
5、D=:OLD.SEED;end;endif;endT_sub_userinfo_aur_name;/Oracle触发器语法(三) 二 Oracle触发器详解开始: createtriggerbiufer_employees_department_id beforeinsertorupdateofdepartment_idonemployeesreferencingoldasold_valuenewasnew_valueforeachrowwhen(new_value.department_id80)begin:new_mission_pct:=0;end;/1、触发器的组成部分:1、 触发器名
6、称2、 触发语句3、 触发器限制4、 触发操作1.1、触发器名称 createtriggerbiufer_employees_department_id命名习惯: biufer(beforeinsertupdateforeachrow)employees表名department_id列名1.2、触发语句比如:表或视图上的DML语句DDL语句Oracle触发器语法(四) 数据库关闭或启动,startup shutdown等等 beforeinsertorupdate ofdepartment_idonemployeesreferencingoldasold_valuenewasnew_value
7、foreachrow说明:1、 无论是否规定了department_id,对employees表进行insert的时候2、 对employees表的department_id列进行update的时候1.3、触发器限制 when(new_value.department_id80)限制不是必须的。此例表示如果列department_id不等于80的时候,触发器就会执行。其中的new_value是代表更新之后的值。1.4、触发操作是触发器的主体begin :new_mission_pct:=0;end;主体很简单,就是将更新后的commission_pct列置为0触发:insertintoemployees(employee_id,last_name,first_name,hire_date,job_id,email, department_id,salary,commission_pct)values(12345,Chen,Donny,sys
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西安理工大学《新时代高校劳动教育通论》2023-2024学年第二学期期末试卷
- 南京理工大学《乒乓球教学》2023-2024学年第二学期期末试卷
- 吉首大学张家界学院《声乐一》2023-2024学年第二学期期末试卷
- 滁州职业技术学院《民间美术图形创新设计》2023-2024学年第二学期期末试卷
- 桂林医学院《软件设计模式与体系结构(双语)》2023-2024学年第二学期期末试卷
- 社区服务中心设计
- 小学科学实验室安全教育
- 2024年水电站计算机监控装置项目资金筹措计划书代可行性研究报告
- 相关管理规定制度的教育
- 新生儿肺炎护理
- 《晨会的重要性》课件
- 安全色与安全标识
- 《康复工程学》课件-第一讲 康复工程概论
- 智能监测与控制系统-深度研究
- 水利施工超标准洪水应急预案
- 《自动瓷砖切割机的结构设计》12000字(论文)
- 海上丝绸之路(浙江海洋大学)学习通测试及答案
- 皮带机安全培训课件
- ISO 27040-2015 信息技术安全技术存储安全管理手册程序文件制度文件表单一整套
- 【MOOC】游戏开发程序设计基础-中国传媒大学 中国大学慕课MOOC答案
- 【MOOC】葡萄酒文化与鉴赏-西北工业大学 中国大学慕课MOOC答案
评论
0/150
提交评论