下面是实现乐观并发控制的一种简单而常见的方法:
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
。如果不是,则表示有其他会话正在修改数据。
暂无答案!
目前还没有任何答案,快来回答吧!