1.事务是对数据库操作的逻辑单位
2.数据库事务组成:
- 一个或多个DML语句
- 一个DDL语句
- 一个DCL语句
3.事务的开始和结束
事务以第一个DML语句开始,遇到下列情况事务结束:
- 遇到commit(提交语句) 或rollback(回滚语句)
- 遇到DDL 或DCL语句时,自动提交
- 用户会话结束
- 系统崩溃
4.commit 或rollback 前数据状态
- 当前事务中数据状态的改变是可以恢复的
- 当前事务中的DML操作结果只对当前会话可见,即可以通过select语句查看DML操作结果
- 其它会话不能查看当前会话所做的修改。
- 当前事务中DML语句所涉及到的行被锁定,其它会话不能更改受影响行中的数据。
5.事务commit 后数据状态
- 数据的修改永久生效,不可再撤消
- 数据之前的状态被覆盖,永久丢失
- 所有的用户(会话)都将看到操作后的结果
- 记录锁被释放,其它用户可对这些进行修改操作
- 事务中的保存点(savepoints)被清除
6.事务执行rollback 后数据状态
- 所有数据的更改取消
- 数据恢复到修改前的状态
- 受影响行上的锁全部释放
7.事务特性(ACID):
- 原子性(Atornicity):事务要么全部执行,要么全部不执行,不允许部分执行
- 一致性(Consistency):事务把数据库从一个一致状态带入另一个一致状态
- 隔离性(Isolation):一个事务的执行不受其他事务的影响
- 持久性(Durability):一旦事务提交,就永久有效,不受关机等情况的影响