使用数据库触发器

使用数据库触发器

ID:37414060

大小:375.81 KB

页数:45页

时间:2019-05-12

使用数据库触发器_第1页
使用数据库触发器_第2页
使用数据库触发器_第3页
使用数据库触发器_第4页
使用数据库触发器_第5页
资源描述:

《使用数据库触发器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、授课教师:原炜斌QQ:448920091使用数据库触发器Oracle10g数据库管理课程目标(Objectives):触发器种类与定义只读视图、可更新视图Instead-Of触发器新的数据库触发器使用数据库触发器Oracle10g数据库管理课程数据库触发器是存储在数据库中、根据发生的事件而执行的一种存储子程序。它与存储过程不同的是,存储过程通过其它程序来启动运行或直接启动运行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。该事件可以是一个DDL操作,如对象的创建、修改或删除;也可以是一个DML操作,如表

2、或视图上的一个INSERT、UPDATE或DELETE操作;也可以是系统事件,如数据库启动和关闭、登录和登出;还可以是一个用户事件,如模式登录和登出。数据库触发器使您能够执行多种函数。概述使用数据库触发器Oracle10g数据库管理课程概述使用数据库触发器商品ID库存数量库存预警量1004500101157761011584810入库流水号入库商品ID入库数量2006120058115870200612006011581102006120083100440出库流水号出库商品ID出库数量200612005811573020061200601158602006

3、120083100455库存表GOODS商品出库表OUTGOODS商品入库表INGOODS每天有商品的入库和出库,如何确定商品的库存量?Oracle10g数据库管理课程概述使用数据库触发器由于入库操作或者出库操作都可能影响到商品的库存量,所以可以考虑在入库表或者出库表增加一个触发器,当对入库表或者出库表做DML操作(INSERT、UPDATE、DELETE)操作时,都会激活入库表或者出库表上的触发器,进而通过触发器中的逻辑修改库存表中的库存量。要完整实现这一过程,需要理解两个概念:1、数据库中的事务处理2、JAVAJDBC调用过程Oracle10g数据库管

4、理课程最常见的数据库触发器用法是:为DDL和DML操作进行审计为强制执行复杂验证规则,防止错误的或不一致的数据输入到数据 库中。当特定行为发生时,执行与其相关的行为。强制执行复杂的数据完整性关系。在某些情况下,如父记录更新以 后子记录上要执行级联更新操作等。如果不使用数据库触发器,将 无法公开的指定这种完整新的约束关系。自动生成派生值。处理系统事件。概述使用数据库触发器Oracle10g数据库管理课程数据库触发器是一种响应数据库事件而执行的存储过程。该事件被称为触发器事件,它可以为下面任意一个事件:DML操作一个系统事件,如数据库STARTUP、SHUTD

5、OWN、SERVERERROR一个用户事件,如LOGON、LOGOFF触发器事件是在执行触发器语句时进行初始化的。触发器事件在数据库启动与关闭或者用户登录与登出时也能进行初始化。PL/SQL触发器:种类与定义Oracle10g数据库管理课程触发器的种类触发器的种类:DMLINSTEAD-OF系统和用户事件触发器Oracle10g数据库管理课程触发器的组成触发事件:即在何种情况下触发TRIGGER;例如:INSERT,UPDATE,DELETE。触发时间:即该TRIGGER是在触发事件发生之前(BEFORE)还是之后(AFTER)触发,也就是触发事件和该TR

6、IGGER的操作顺序。触发器本身:即该TRIGGER被触发之后的目的和意图,正是触发器本身要做的事情。例如:PL/SQL块。触发频率:说明触发器内定义的动作被执行的次数。即语句级(STATEMENT)触发器和行级(ROW)触发器。语句级(STATEMENT)触发器:是指当某触发事件发生时,该触发器只执行一次;行级(ROW)触发器:是指当某触发事件发生时,对受到该操作影响的每一行数据,触发器都单独执行一次。Oracle10g数据库管理课程例子:触发器的定义CREATE[ORREPLACE]TRIGGERtrigger_name[BEFORE

7、AFTER]tr

8、igger_eventONtable_reference[FOREACHROW[WHENtrigger_condition]]trigger_body;Oracle10g数据库管理课程定义DML触发器CREATEORREPLACETRIGGERai_org_trigAFTERINSERTONorg_tabFOREACHROWBEGINUPDATEsec_hrc_auditSETnum_rows=num_rows+1WHEREhrc_code=:NEW.hrc_code;IF(SQL%NOTFOUND)THENINSERTINTOsec_hrc_auditV

9、ALUES(:NEW.hrc_code,1);ENDIF;END;

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

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

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