看到很多帖子说到,commit之后会释放锁。
但是这句话感觉很模糊。
拟举一个开发的业务场景
一个顺序号表中, 现在的顺序号是1, 要用到10个,处理完之后,将顺序号改成11。
正常的业务逻辑是。
1、第一步:获取顺序号,进行加锁
select num from a where type = 'oder_num' for update
返回的顺序号是1。
2、第二步:处理业务
处理了10个订单后,顺序号就是11了。
这时候将11回写到表中。
update a set num = 11 where type = 'oder_num'
业务结束!
在这个业务过程中,有以下几个问题。
1、这个过程中有没有释放锁?
2、如果有,在哪一步释放的?
3、如过没有,该如何进行释放?