Oracle 事务小结

什么是事务

保证数据库从一种状态,改变为另一种状态(一致)。要么全部修改都保存,要么全部修改都不保存(原子)

为什么要用事务

例如更新两个日志文件,第一个文件更新完后,第二个文件更新到一半。文件系统只能恢复第二个文件的快照,而不能把第一个文件也恢复到之前,或者继续把第二个文件更新完成。即不能保持两个文件状态一致,要么全部成功,要么全部失败。

事务体现了ACID特性

原子性(Atomicity):一个事务中的多条Sql语句,要么全部发生,要么全部回滚(我的理解可能比较片面)
一致性(Consistency):在undo段中存放事务所做的修改的旧值,这样某事务进行过程中,可以对事务外查询(可以理解为其它实例的查询)提供旧值的查询,即读一致性。事务提交后,事务外查询和事务内查询结果一致。
隔离性(Isolation):一个事务在提交前,事务外查寻的结果为旧查询结果。即事务未提交,对其它事务无影响。
持久性(Durability):事务一旦提交,结果是永久性的

事务的开始和结束

一个dml语句会隐式的开启一个事物。如增改删。
commit,rollback 结束事务。(rollback to savepoint 不会结束事务)

存储过程 如果有异常捕获 则不会发生回滚(不会“触发出错就回滚”机制)
DML 语句出错 会回滚到 该条dml语句之前的 savepoint(Oracle中默认在每个数据库命令外加了一个savepoint) 所以都不会结束事务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值