Oracle Database 高级事务,游标


隔离级别

脏读

不可重复读

虚读

读未提交

Read uncommitted

可以

可以

可以

读已提交

Read committed

不可以

可以

可以

可重复读

Repeatable read

不可以

不可以

可以

可串行化

Serializable

不可以

不可以

不可以

脏读是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

例如:你银行有1000块,你取出500,但没最终提交,你老婆这时通过ATM查帐,你放弃了取款,这时帐户应该还有1000,但是你老婆看到的是500,于是你老婆提交了,结果你损失了500

Ps: 用线程方式理解------读数据不加锁

不可重复读是指当事务两次读取同一行数据,但每次得到的数据都不一样时,就会发生这种事件。

例如:你用网络察看你银行帐户,你老婆这时用ATM察看,这时你取出了500,你老婆准备取1000块发现不够了…..

Ps: 用线程方式理解------读之前加锁,读完放锁

脏读和不可重复读的区别是,一个未提交读取,一个以提交读取

虚读是指一个事物查询两次,另一个事物在这两次之间插入了数据,导致两次查询的结果不同

Ps: 用线程方式理解------读之前加锁,读完不放锁,直到commit或rollback才放锁

串行化-----完全安全的数据访问模式

Ps: 用线程方式理解------读之前加条件锁,读完不放锁,直到commit或rollback才放锁

commit  提交上一个事物,开始下一个事物

savepoint var 保存点

rollback  回滚到事务开始处,或某保存处

事务

事务是包含一组数据库操作的逻辑工作单元。在事务中包含的数据库操作是不可分割的整体,要么一起被执行,要么回滚到执行事务之前的状态

TCL 事务控制语言 -  数据是否保存到数据库中

commit / rollback / savepoint

最新文章

  1. node如何让一个端口同时支持https与http
  2. 关于AngularJs,数据绑定与自定义验证
  3. 《软件性能测试与LoadRunner实战教程》新书上市
  4. Erlang数据类型的表示和实现(4)——boxed 对象
  5. php上传图片---初级版
  6. ManifoldJS
  7. DXperience-11.1.5 破解
  8. 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据
  9. 动态加载JS代码
  10. AJAX安全-Session做Token
  11. mysql function 与 procedure
  12. (一)Nodejs - 框架类库 - Nodejs异步流程控制Async
  13. 【笔记】JS中的数组方法
  14. Simple Automated Backups for MongoDB Replica Sets
  15. 【原生js】原生js的省市区三级联动
  16. 实现apk 调用framework java JNI中方法
  17. springboot集合jpa使用
  18. C#UDP广域网,局域网通信-原理分析
  19. 进程同步控制(锁,信号量,事件), 进程通讯(队列和管道,生产者消费者模型) 数据共享(进程池和mutiprocess.Pool模块)
  20. Spark源码剖析 - 任务提交与执行

热门文章

  1. Chrome插件(扩展)
  2. java.io.IOException: read failed, socket might closed or timeout, read ret: -1
  3. HDUOJ Number Sequence 题目1005
  4. POJ1751 Tree 树分治
  5. searchView 颜色 icon 设置
  6. Python: PS 滤镜--马赛克
  7. 并不对劲的spoj1812
  8. 【转载】HTTP协议详解
  9. bzoj 1646: [Usaco2007 Open]Catch That Cow 抓住那只牛【bfs】
  10. bzoj 1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏【模拟】