Oracle 触发器语法及实例

Oracle 触发器语法及实例

ID:40751856

大小:20.38 KB

页数:7页

时间:2019-08-07

Oracle 触发器语法及实例_第1页
Oracle 触发器语法及实例_第2页
Oracle 触发器语法及实例_第3页
Oracle 触发器语法及实例_第4页
Oracle 触发器语法及实例_第5页
资源描述:

《Oracle 触发器语法及实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Oracle触发器语法及实例Oracle触发器语法(一)一Oracle触发器语法触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。功能:1、允许/限制对表的修改2、自动生成派生列,比如自增字段3、强制数据一致性4、提供审计和日志记录5、防止无效的事务处理6、启用复杂的业务逻辑触发器触发时间有两种:after和before。1、触发器的语法:CREATE[ORREPLACE]TIGGER触发器名触发时间触发事件ON表名[FOREACHROW]BEGINpl/sql语句END

2、其中:触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。触发时间:指明触发器何时执行,该值可取:before---表示在数据库动作之前触发器执行;after---表示在数据库动作之后出发器执行。触发事件:指明哪些数据库动作会触发此触发器:                        insert:数据库插入会触发此触发器; Oracle触发器语法(二)update:数据库修改会触发此触发器;delete:数据库删除会触发此触发器。表名:数据库触发器所在的表。foreachrow:对表的每一行触发器执行一次。如果没有这一选项,则

3、只对整个表执行一次。2、举例:下面的触发器在更新表auths之前触发,目的是不允许在周末修改表:create triggerauth_secure before insert or update or delete //对整表更新前触发on authsbeginif(to_char(sysdate,'DY')='SUN'RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');end if;end例子:CREATE OR REPLACE TRIGGER CRM.T_SUB_USERINFO_AUR_NAME AFTER UPDATE OF

4、 STAFF_NAMEON CRM.T_SUB_USERINFOREFERENCING OLD AS OLD NEW AS NEWFOR EACH ROWdeclarebeginif :NEW.STAFF_NAME!=:OLD.STAFF_NAME thenbegin客户投诉 update T_COMPLAINT_MANAGE set SERVE_NAME=:NEW.STAFF_NAME where SERVE_SEED=:OLD.SEED;客户关怀update T_CUSTOMER_CARE set EXECUTOR_NAME=:NEW.STAFF_NAMEwhere EX

5、ECUTOR_SEED=:OLD.SEED;客户服务 update T_CUSTOMER_SERVICE set EXECUTOR_NAME=:NEW.STAFF_NAMEwhere EXECUTOR_SEED=:OLD.SEED;end;end if;end T_sub_userinfo_aur_name;/Oracle触发器语法(三)二Oracle触发器详解开始:create triggerbiufer_employees_department_idbeforeinsertorupdateofdepartment_idonemployeesreferencingoldas

6、old_value newasnew_valuefor each rowwhen (new_value.department_id<>80 )begin:new_value.commission_pct :=0;end;/1、触发器的组成部分:1、触发器名称2、触发语句3、触发器限制4、触发操作1.1、触发器名称create trigger biufer_employees_department_id命名习惯:biufer(before insert update for each row)employees表名department_id列名1.2、触发语句比如:表或视图上的

7、DML语句DDL语句Oracle触发器语法(四)数据库关闭或启动,startupshutdown等等before insert or updateof department_idon employeesreferencing old as old_valuenew as new_valuefor each row说明:1、无论是否规定了department_id,对employees表进行insert的时候2、对employees表的department_id列进行update的时候1.3、触发器限制w

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。