要么都成功,要么都失败
ACID原则
A:原子性:要么全部完成,要么都不完成
一个事务是不可分割的单位,事务中包含的诸多操作
要么同时成功要么同时失败
C:一致性:总数不变
事务必须是使数据库从一个一致性的状态变成另外一个一致性的状态
一致性跟原子性是密切相关的
I:隔离性:多个进程互不干扰
一个事务的执行不能被其他事务干扰
(即一个事务内部的操作及使用到的数据对并发的其他事务是隔离的,并发执行的事务之间也是互相不干扰的)
D:持久性:一旦提交不可逆,持久化到数据库了
一个事务一旦提交成功执行成功 那么它对数据库中数据的修改应该是永久的
接下来的其他事物操作或者故障不应该对其有任何的影响
隔离性的问题:
脏读:一个事务读取了另一个没有提交的事务
不可重复读:在同一个事务内,重复读取表中的数据,表数据发生了改变
虚读(幻读):在一个事务内,读取到了别人插入的数据,导致前后读出来结果不一致