什么是事务

一组操作要么都成功,要么都失败.

开启事务

  • start transation: 开始事务
  • savepoint p1: 设置保存点p1
  • rollback to p1: 回滚到p1
  • rollback: 回滚到事务开始状态
  • commit: 提交事务(所有操作生效)

image.png

注意

如果不开启事务默认情况下dml是自动提交的不能回滚

事务隔离

目的:多个连接开启各自事务操作数据库时,保证数据的真实性和一致性

脏读

一个事务读取了另一个事务未提交的数据

不可重复读

同一查询在同一事务中多次执行由于其他事务所做的修改或删除每次返回不同的结果集

幻读

一个事务读取了另一个事务插入的事务导致前后读取不一致

四种隔离级别

image.png

ACID

原子性(Atomicity)

同一个事务要么都完成要么都失败

一致性(Consistency)

针对事务操作前后状态一致

持久性(Durability)

事务没提交则恢复到原状
事务已经提交则持久化到数据库

隔离性(isolation)

多个用户并发访问数据库 之间的事务互相隔离

Q.E.D.


全栈混子的菜鸡日常