标签:事务 隔离 记录 update 回滚 提交 观察 级别
目录隔离级别为读已提交
如果数据库的隔离级别是读已提交(Read Committed),这是很多数据库默认的隔离级别。在这种情况下:如果事务要更新一条记录,而这条记录恰好被另一个运行中但未提交事务更改(被锁定或删除),则当前事务会阻塞,等待直到另一个事务提交或回滚后,再继续处理(First Updater Win Rule)。
如果另一个事务回滚了,那么当前事务可以继续执行,更新这条记录。
如果另一个事务提交了,要分两种情形。第一种,要是这条记录被删除了,那么忽略这条记录;第二种,这条记录被更新了,需要重新判断这条记录是否满足谓词条件(where语句),满足则更新,不满足则忽略这条记录。
隔离级别为可重复读
如果数据库的隔离级别是可重复读,事务只能看到事务开始前已提交的数据。所以,对于并发的更新操作,与读已提交是类似的。如果事务更新同一条记录,当前事务会阻塞直到另一个并发写的事务结束。如果另一个事务回滚,那么当前事务继续执行,更新这条记录。如果另一个事务提交了,当前事务会回滚,这里的处理与读已提交不同。
标签:事务,隔离,记录,update,回滚,提交,观察,级别 来源: https://www.cnblogs.com/henuqin/p/16547440.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。