数据库并发操作可能出现的问题之---更新丢失

今天遇到了一个问题,就是数据库四大隔离别,以及隔离问题:我们常知道的就是脏读、不可重复读和幻读。

但是今天我学到了,一个新可能出现的问题就是:丢失更新

参考:http://www.pianshen.com/article/9331159795/

https://blog.csdn.net/huangyueranbbc/article/details/84304682

1.更新丢失(LostUpdate):
A和B事务并发执行,A事务执行更新后,提交;B事务在A事务更新后,B事务结束前也做了对该行数据的更新操作,然后回滚,则两次更新操作都丢失了。

第一类丢失更新(回滚丢失,Lost update)。
在事务A期间,事务B对数据进行了更新;在事务A撤销之后,覆盖了事务B已经提交的数据。
SQL92没有定义这种现象,标准定义的所有隔离界别都不允许第一类丢失更新发生。

 

第二类丢失更新(覆盖丢失/两次更新问题,Second lost update)。
在事务A期间,事务B对数据进行了更新;在事务A提交之后,覆盖了事务B已经提交的数据。
第二类丢失更新,实际上和不可重复读是同一种问题。

 

posted @ 2019-06-05 16:06  矮方方  阅读(4955)  评论(0编辑  收藏  举报