第18章 事务
四大特性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
what
需要保证ACID特性的一个或多个数据库操作称为事务(transaction)
事务的状态
活动(active)
部分提交(partially committed)
失败(failed)
中止(aborted)
提交(committed)
流程
开启事务
- begin;
- start transaction;
提交事务
-
commit;
-
不显式开启事务时,默认自动提交事务,没一条语句都是一个独立的事务
-
手动开启事务后,不会进行自动提交,但是有些情况会导致事务隐性提交
- 定义或修改数据库对象的语言(create、alter、drop等)
- 事务控制中的锁定语句
- 隐式修改数据表的操作
手动中止事务
- rollback;
- 事务遇到某些错误无法继续执行的话,大部分情况下会回滚失败的语句,在发生死锁等情况下会回滚整个事务
- 调用rollback可以指定回滚到哪个保存点(savepoint),如果rollback后面没有保存点,默认回滚到事务执行之前