- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8、9章游标事物及触发器
游标、事务、触发器 谷志峰 游标简介 事务简介 什么是事务事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要们全部失败。如:网上转帐就是典型的要用事务来处理,用以保证数据的一致性。 事务和锁当执行事务操作时,Oracle会在被作用的表上加锁,防止其他用户改表。 提交事务在执行使用commit语句可以提交事务,当执行了commit语句后,会确认事务的变化,结束事务,删除保存点,释放锁。当使用commit语句结束事务之后,其他会话将可以查看到事务变化后的新数据。 回退事务在介绍回退事务前,我们先介绍一下保存点(savepoint)的概念和作用,保存点是事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事务所定义的所有保存点。当执行rollback时,通过制定保存点可以回退到指定的点。1、设置保存点sql savepoint a;2、回滚部分事务sqlrollback to a;3、回滚全部事务sqlrollback; 在java中的具体使用和体会 Connection ct=null ct.setAutoCommit(false); ………….. mit(); 在catch字句中写入: ct.rollback(); 锁的概念 锁是防止访问同一资源的事务之间进行相互破坏的机制。 锁用于保护将要被或正在被修改的数据, 锁的优点 一致性 - 一次只允许一个用户修改数据 完整性 - 为所有用户提供正确的数据。如果一个用户进行了修改并保存,所做的修改将反映给所有用户 DML操作可以在两个不同级别上获取数据锁:为指定行和为整个表。 触发器 解决之道:--触发器 分类 DML触发器 替代触发器 系统触发器 用户事件触发器 Pl/sql管理触发器 例1 行级触发器及语句级触发器 删除触发器 :old和:new 替代触发器 Instead Of triggers control insert, update, and delete operations on views, not tables. They can be used to make non updateable views updateable and to override the default behavior of views that are updateable. 可以实现对视图的dml操作 系统时间触发器 用户时间触发器(ddl触发器) 管理触发器 用户管理简介 * * 修改表 修改表 拒绝访问 Price Name Toy_ID GI Joe Barbie 45 T002 20 T001 直到提交或回滚了事务之后,其他用户才可以更新数据 并行性 -允许多个用户访问同一数据 Price Name Toy_ID GI Joe Barbie 45 T002 20 T001 修改表中 的数据 查看表中的数据 允许访问 锁用来解决数据一致性、完整性和并发性相关的问题。 表级锁 行级锁 数据锁 行锁锁住选中行 表锁锁定整个表 加for each row行级 不加语句级 如何阻止这个删除操作呢?? create or replace trigger trig1 instead of insert on goodsview for each row begin insert into goods(id,name) values (:new.id,:); insert into types(t_name) values (:new.t_name); end trig1; 替代触发器不如事务好用啊,或者存储过程 * * * Dml触发器---日志的创建有用。
文档评论(0)