1.数据库表设计

account 表有三个字段,分别是id,user_id,amount

2.实现

1)先读account账户表某个人的数据,得到amount的金额数为amountValue

2)每次更新account表中的amount字段时,为了防止发生冲突或资金问题,需要这样操作

update account set amount = newValue  where amount = amountValue;

只有这条语句执行了,才表明本次更新amount字段的值成功

 

比如买家账户金额只有10块钱,分别从app 和 PC 同一时间进行支付操作,利用这个乐观锁机制,第一笔订单更新后成功了,第二笔却无法成功,这样就防止了扣除资金问题发生。