事务的特性
⑴ 原子性(Atomicity)事务包含的所有操作要么全部成功,要么全部失败回滚;
因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
⑵ 一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,
也就是说一个事务执行之前和执行之后都必须处于一致性状态。
⑶ 隔离性(Isolation)隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为
每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
⑷ 持久性(Durability)持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,
即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作
事务的隔离级别
① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
ps:对于修改的数据两次查询看到的结果相同,但会产生幻读(即新增或删除)
③ Read committed (读已提交):可避免脏读的发生。
④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。
第一类丢失更新:后一个事务的回滚会覆盖前一个已提交的事务
第二类丢失更新:后一个事务的提交会覆盖前一个已提交的事务