1、什么是数据库事务:事务是一个独立的逻辑工作单元,它由特定的一系列必须作为一个整体一起成功或失败的SQL语句组成。
2、所有数据库事务都需要具有4个属性ACID:原子性、一致性、隔离性、持久性。
A:原子性,事务中的所有任务都必须执行或都不执行,不存在部分事务。
C:一致性,事务将数据库从一个一致性状态带到另一个一致性状态。
I:隔离性,一个事务所带来的影响直到该事务提交之前对其他事务来说都是不可见的。
D:持久性,经过提交的事务所进行的修改是永久性的。
3、事务的4个隔离级别
a、未提交读:允许脏读、不可重复读、幻读。
b、提交读:不允许脏读,允许不可重复读、幻读。
c:可重复读:不允许脏读、不可重复读,允许幻读。
d:序列化:脏读、不可重复读、幻读都不允许。
脏读:读取一个未提交的事务称为脏读。
不可重复读:当事务第二次执行同一个查询的时候,由于另一个事务提交了更新而得到了不同结果的时候就称之为不可重复读。
幻读:如果事务中的一个查询第二次执行,但返回了满足条件的过滤标准的记录,就认为是发生了幻读。