- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事务处理简介 ACID 事务处理示意图 使用COMMIT提交事务 使用ROLLBACK回滚事务 使用SAVEPOINT保存点 使用SET TRANSACTION设置事务属性 使用锁定 Oracle锁示意图 锁定类型 在Oracle中,锁定又可以分为2种类型: 表锁定:对整个表实行数据锁定,以确保当前事务可以访问数据,但是防止其他的会话或事务同时对该表进行访问而造成冲突,用于保护整张表的数据。 记录锁定:又称为行锁定,对当前操作的一行进行锁定,锁定总是以独占的方式进行,在一个事务结束之前,其他事务将要等待该事务结束。 使用LOCK TABLE LOCK TABLE语句允许用户使用一个特定的锁定模式锁定整个数据表,使用LOCK TABLE允许开发人员在某一操作进行之前共享或拒绝其他用户对于该表的访问。LOCK TABLE语句的语法如下所示: LOCK TABLE table_reference_list IN lock_mode MODE [NOWAIT]; 1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司 PL/SQL从入门到精通视频 第十一讲:事务处理和锁定 课程安排 事务处理简介 使用锁定 什么是事务处理 使用COMMIT提交事务 使用ROLLBACK回滚事务 使用SAVEPOINT保存点 使用SET TRANSACTION设置事务属性 由于事务处理要确保事务内数据操作的一致性,因此一个事务必须要满足所谓的ACID即原子性、一致性、隔离性和持久性这四个属性。 1.原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。以网上银行转账为例,必须在A账户上增加1000元,同时要在B账户上减少1000元,要么同时执行,要么都不执行更改,以确保整个事务是一个原子工作单元。 2.一致性 事务在完成时,必须使所有的数据都保持一致状态,即所有的数据都要发生更改,以保证数据的完整性。在银行转账时,A账户和B账户的数据都要发生更改,以便保证数据的完整性。 3.隔离性 2个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。比如银行转账操作时,如果有其他的会话也在对进行转账,那么当前事务内不能看到其他事务在运行时或运行中间某一时刻的数据。 4.持久性 一旦事务被提交之后,数据库的变化就会被永远保留下来,即使运行数据库软件的机器后来崩溃也是如此。 COMMIT语句会结束数据库事务,它做了如下几方面的工作: 如果对数据库使用了DML语句进行了修改,那么这些修改就被永久的写进了数据库中,这时其他用户可以立即看到对事务所做的修改。 加在事务上的所有锁以及事务所占有的一切资源(如游标、内存等)自动的被释放。 COMMIT语句的声明语法如下所示: COMMIT [WORK] [COMMENT text]; 如果说COMMIT就好比保存操作的话,那么ROLLBACK就好比撤消操作。与COMMIT语句一样,ROLLBACK语句将终止当前的事务,使用ROLLBACK语句执行回滚的情形一般有2大类: 误删除了数据或者是更改了错误的数据,使用回滚能帮助恢复原始的数据。 如果触发了一个异常或者SQL语句执行失败而不能完成事务,使用回滚能将数据恢复到初始状态,以便于再次执行。 ROLLBACK的基本语法如下所示: ROLLBACK [WORK] [TO [SAVEPOINT] savepoint_name]; 默认情况下,ROLLBACK会撤消整个事务,如果编写了一个很大的PL/SQL块,使用了很多的DML语句,此时回滚操作的工作量是比较大的。PL/SQL提供了语句级别的回滚,允许将一个大的事务分成很多语句级的小块,每一个小块作为一个保存点,这样在执行PL/SQL程序时,如果发生了错误,Oracle只是回滚到最近的保存点,而不是撤消整个事务。 保存点的声明语法如下所示: SAVEPOINT savepoint_name; SET TRANSACTION parameter; parameter用来指定事务的参数,可供使用的参数取值有如下的几种: READ ONLY:用于建立只读事务,在此事务中执行任何INSERT、DELETE、UPDATE或SELECT FOR UPDATE等命令都属于非法操作,对于这种事务模式不用指定回滚段,基本语法如下所示: SET TRANSACTION READ ONLY; READ WRITE:建立读写事务,读写事务没有只读事务的种种限制,不仅可以执行SELECT语句,也可以执行INSERT、DELETE、UPDATE等语句,基本语法如下所示: SET TRANSACTION READ WRITE; ISOLATION LEVEL:用来
文档评论(0)