事务的四个特性:ACID
原子性:一个事务一旦执行,要么全部成功,要么全部失败。
一致性:一个事务在执行之前和执行之后,数据库必须保持其一致性。
隔离性:在并发环境中,并发事务是互相隔离的,一个事务的执行不会被其他事务干扰。
持久性:一个事务提交后,数据库中的数据会被永久的保存下来。
丢失更新:
第一类:事务回滚导致的另一个事务的丢失更新。
第二类:事务A覆盖事务B已经提交的数据导致的丢失更新。
事务的隔离级别:
1.读未提交:一个事务读取另外一个事务没有提交的数据。出现脏读:A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作,这时候如果事务B回滚,那么A事务读到的数据是不被承认的。
2.读已提交:一个事务只能读取另外一个事务已经提交的数据,不能读取未提交的数据。出现不可重复读:A事务读取到了B事务已经提交的更改数据,在同个时间段内,两次查询的结果不一致。
3.可重复读:一个事务要读取另一个事务的更改数据,要等其提交数据后才能读取。出现幻读:A事务读取B事务提交的新增数据。
4.串行化:事务只能一个接一个地执行,不能并发。