新手上路之oracle 事务 笔记
来源:互联网 发布:moment.js 计算时间差 编辑:程序博客网 时间:2024/05/16 10:06
一. 事务
事务是指作为单个逻辑工作单元执行的一组相关操作。这些操作要求全部完成
或者全部不完成。使用事务是为了保证数据的安全有效。
事务有一下四个特点:(ACID)
1、原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行。
2、一致性(Consistence):事务完成时,要使所有所有的数据都保持一致的状态,
换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。
3、隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。
4、持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障,
也不应该丢失。
当事务之间发生并发时有几个隔离级,Oracle 默认的隔离级别是 read committed。
Oracle 支持四种隔离级别中的两种:read committed 和 serializable。除此之外,
Oralce 中还定义 Read only 和 Read write 隔离级别。
Read only:事务中不能有任何修改数据库中数据的操作语句,是 Serializable 的一个子集。
Read write:它是默认设置,该选项表示在事务中可以有访问语句、修改语句,但不经常使用。
丢失更新 :两个事务同时存储, 一个存储 700 , 一个存储 900,最终可能至存储了900或者 700,那另一个的更新就没成功,即结果不为预想的 400.
脏读:事务 m1更新了一行数据,还没有提交所做的修改,m2 读取更新后的数据,m1回滚,m2 读取的数据无效,这种数据称为脏读数据。
不可重复读 :事务 m1 读取一行数据,m2 修改了 m1 刚刚读取的记录,m1再次查询,发现与第一次读取的记录不相同,称为不可重复读。
幻读 :事务 m1 读取一条带 WHERE条件的语句,返回结果集,m2插入一条新纪录,恰好也是 m1的 WHERE条件,m1再次查询,结果集中又看到 m2 的记录,新纪录就叫做幻读。
1、事务的开启
自动开启于 DML 之 insert delete update
2、事务的结束
1) 成功
正常执行完成的 DDL语句:create、alter、drop
正常执行完 DCL 语句 GRANT、REVOKE
正常退出的 SQLPlus 或者 SQL Developer 等客户端
如果人工要使用隐式事务,SET AUTOCOMMIT ON (只针对一个连接)
手动提交 :使用 commit
2) 失败
rollback ,手动回滚
非法退出 意外的断电
rollback 只能对未提交的数据撤销,已经 Commit 的数据是无法撤销的,因为 commit之后已经持久化到数据库中。
- 新手上路之oracle 事务 笔记
- 新手上路之oracle JDBC 笔记
- 新手上路之oracle 92 99 表连接(笔记)
- 新手上路之oracle 视图 索引(了解)笔记
- 新手上路之oracle 增,删,改,查操作 笔记
- 新手上路之监听器 笔记
- 新手上路之面向对象 笔记
- 新手上路之AJAX AJAX笔记小结
- 新手上路之c指针理解 笔记
- driver之新手上路
- 新手上路(概念篇)之Oracle数据字典视图
- 新手上路之 js 创建对象篇 代码笔记
- 新手上路 js 之 this关键字 代码笔记
- 新手上路之 HttpServlet和常用对象 笔记
- 新手上路之容器ArrayList遍历总结 笔记
- 新手上路之容器HashMap遍历总结 笔记
- 新手上路之主板篇
- OpenGL教程之新手上路
- uva12108 特别困的学生 (Extraordinary Tired Students
- 百度前端面试题错题汇总
- SwipeRefreshLayout实现下拉刷新
- Android笔记(11)“正在加载”动画
- JAVA中对象和类的知识点
- 新手上路之oracle 事务 笔记
- Java-福尔摩斯的约会 (20)
- 事务
- 【PAT】【Advanced Level】1018. PBM (30)
- Q131:PBRT-V3,对比SurfaceInteration和MediumInteraction(笔记)
- 机器学习mxnet mac下编译问题
- javaScript中定时器的用法和原理
- 驱动框架7——使用gpiolib完成led驱动
- 【Unity3d】Unity3d引擎的新纪元——Unity3d 2017