14Oracle Database 高级事务,游标
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
最新文章
- node如何让一个端口同时支持https与http
- 关于AngularJs,数据绑定与自定义验证
- 《软件性能测试与LoadRunner实战教程》新书上市
- Erlang数据类型的表示和实现(4)——boxed 对象
- php上传图片---初级版
- ManifoldJS
- DXperience-11.1.5 破解
- 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据
- 动态加载JS代码
- AJAX安全-Session做Token
- mysql function 与 procedure
- (一)Nodejs - 框架类库 - Nodejs异步流程控制Async
- 【笔记】JS中的数组方法
- Simple Automated Backups for MongoDB Replica Sets
- 【原生js】原生js的省市区三级联动
- 实现apk 调用framework java JNI中方法
- springboot集合jpa使用
- C#UDP广域网,局域网通信-原理分析
- 进程同步控制(锁,信号量,事件), 进程通讯(队列和管道,生产者消费者模型) 数据共享(进程池和mutiprocess.Pool模块)
- Spark源码剖析 - 任务提交与执行
热门文章
- Chrome插件(扩展)
- java.io.IOException: read failed, socket might closed or timeout, read ret: -1
- HDUOJ Number Sequence 题目1005
- POJ1751 Tree 树分治
- searchView 颜色 icon 设置
- Python: PS 滤镜--马赛克
- 并不对劲的spoj1812
- 【转载】HTTP协议详解
- bzoj 1646: [Usaco2007 Open]Catch That Cow 抓住那只牛【bfs】
- bzoj 1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏【模拟】