使用数据库上触发器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用数据库上触发器

建立触发器 关于变异表的问题讨论 create or replace trigger LimitEmployees before insert or update of deptno on emp for each row declare v_Maxemp constant number:=6; v_currentemp number; begin select count(*) into v_currentemp from emp where deptno=:new.deptno; if(v_currentemp+1v_maxemp) then raise_application_error(-20000,员工数量超过名额限制); end if; end; *Oracle 10g数据库管理课程 CISSST 授课教师: 原炜斌 QQ:448920091 使用数据库触发器 目标(Objectives): 触发器种类与定义 只读视图、可更新视图 Instead-Of触发器 新的数据库触发器 使用数据库触发器 数据库触发器是存储在数据库中、根据发生的事件而执行的一种存储子程序。它与存储过程不同的是,存储过程通过其它程序来启动运行或直接启动运行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。该事件可以是一个DDL操作,如对象的创建、修改或删除;也可以是一个DML操作,如表或视图上的一个INSERT、UPDATE或DELETE操作;也可以是系统事件,如数据库启动和关闭、登录和登出;还可以是一个用户事件,如模式登录和登出。 数据库触发器使您能够执行多种函数。 概述 使用数据库触发器 概述 使用数据库触发器 10 48 1158 10 76 1157 10 500 1004 库存预警量 库存数量 商品ID 40 1004 2006120083 110 1158 2006120060 70 1158 2006120058 入库数量 入库商品ID 入库流水号 55 1004 2006120083 60 1158 2006120060 30 1157 2006120058 出库数量 出库商品ID 出库流水号 库存表GOODS 商品出库表OUTGOODS 商品入库表INGOODS 每天有商品的入库和出库, 如何确定商品的库存量? 概述 使用数据库触发器 由于入库操作或者出库操作都可能影响到商品的库存量, 所以可以考虑在入库表或者出库表增加一个触发器,当对入库表 或者出库表做DML操作(INSERT、UPDATE、DELETE) 操作时,都会激活入库表或者出库表上的触发器, 进而通过触发器中的逻辑修改库存表中的库存量。 要完整实现这一过程,需要理解两个概念: 1、数据库中的事务处理 2、JAVA JDBC调用过程 最常见的数据库触发器用法是: 为DDL和DML操作进行审计 为强制执行复杂验证规则,防止错误的或不一致的数据输入到数据 库中。 当特定行为发生时,执行与其相关的行为。 强制执行复杂的数据完整性关系。在某些情况下,如父记录更新以 后子记录上要执行级联更新操作等。如果不使用数据库触发器,将 无法公开的指定这种完整新的约束关系。 自动生成派生值。 处理系统事件。 概述 使用数据库触发器 数据库触发器是一种响应数据库事件而执行的存储过程。该事件被称为触发器事件,它可以为下面任意一个事件: DML操作 一个系统事件,如数据库STARTUP、SHUTDOWN、 SERVERERROR 一个用户事件,如LOGON、LOGOFF 触发器事件是在执行触发器语句时进行初始化的。触发器事件在数据库启动与关闭或者用户登录与登出时也能进行初始化。 PL/SQL触发器:种类与定义 触发器的种类 触发器的种类: DML INSTEAD-OF 系统和用户事件触发器 触发器的组成 触发事件:即在何种情况下触发TRIGGER; 例如:INSERT, UPDATE, DELETE。 触发时间:即该TRIGGER 是在触发事件发生之前(BEFORE)还是之后(AFTER)触发,也就是触发事件和该TRIGGER 的操作顺序。 ??????? 触发器本身:即该TRIGGER 被触发之后的目的和意图,正是触发器本身要做的事情。 例如:PL/SQL 块。 ???触发频率:说明触发器内定义的动作被执行的次数。即语句级(STATEMENT)触发器和行级(ROW)触发器。 语

文档评论(0)

181****7523 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档