hello,这里是东哥。这节课,我们要学习的是,「长乐未央全栈系列:Node.js 项目实践」课程的第 72 回,进阶:数据库的乐观锁,在这节课里,我们将探讨:
- 如果有多个事务修改同一条记录会怎样?
- 乐观锁是什么?
- 如何在 Node 项目中实现乐观锁?
多个事务修改同一条记录
在上节课里,我们介绍了数据库事务的用法。
例一:更新订单和用户信息
但是现在的代码,依然不够完善,大家设想一下:假如刚好同步通知和异步通知,在同一时间,调用了paidSuccess
。
- 同步通知里,去查询了数据库,订单状态是
0
,判断通过。继续更新订单状态为1
。但现在数据库事务还没有提交。
- 这时候异步通知也来了,它也调用了
padSuccess
。因为刚才的事务还没有提交,所以订单状态还是0
,判断通过,它也去更新了数据库。
- 继续向后运行,这样两个通知,都更新了大会员有效期。就有可能会造成用户的大会员时间,重复增加两次。
当然这个例子,不一定非常合适,因为这种情况不是那么容碰到。
例二:库存问...