为什么乐观锁要求每个语句有唯一的版本号?

hlswsv35  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(295)

下面是实现乐观并发控制的一种简单而常见的方法:

select (status,status,version) from t_goods where id=#{id}
update t_goods 
set status=2,version=version+1
where id=#{id} and version=#{version};

但是为什么每次更新都要增加版本号呢?我想在一个会话中使用相同的版本号是可以的,并且保证它与其他会话不同。因为同一会话中的那些语句是序列化的,所以它们不可能相互影响。我说的对吗?
例如,在session1/terminal1中,我们将版本\u id保持为 1 ,在session1/termianl1的语句中,我们只需要检查版本号是否为 1 。如果不是,则表示有其他会话正在修改数据。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题