博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
14Oracle Database 高级事务,游标
阅读量:4634 次
发布时间:2019-06-09

本文共 912 字,大约阅读时间需要 3 分钟。

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

 

转载于:https://www.cnblogs.com/Aha-Best/p/10858907.html

你可能感兴趣的文章
1 线性空间
查看>>
VS不显示最近打开的项目
查看>>
MyEclipse安装Freemarker插件
查看>>
计算多项式的值
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总
查看>>
最强的篮球队和马尔可夫模型
查看>>
hdu-4302-Holedox Eating-线段树-单点更新,有策略的单点查询
查看>>
cocos2d-x 音效中断问题
查看>>
设计模式简要笔记
查看>>
子分类账知识学习(汇总网上比较有用的资料)
查看>>
pyQt 每日一练习 -- 登录框
查看>>
wp 删除独立存储空间文件(多级非空文件夹删除)
查看>>
Loadrunner安装使用入门
查看>>
smartupload 上传文件时 把页面编码改成gbk 解决乱码
查看>>
EPS是什么格式
查看>>
input禁止显示历史输入记录
查看>>
Python的数据库操作(Sqlalchemy)
查看>>
2.抽取代码(BaseActivity)
查看>>