1、使用on duplicate key 进行新增或更新
注:需要建立唯一索引或者使用主键,且insert中必须包含key的字段
insert into distribute_distributor_stock(goods_id, stock_total,distributor_id, purchase_count)
values (#{goodsId},
#{stockTotal},
#{distributorId},
#{purchaseCount})
on duplicate key update
purchase_count=purchase_count+${purchaseCount},
stock_total=stock_total+${purchaseCount}
2、扣减库存,以条件判断是否超卖
UPDATE distribute_distributor_stock
SET stock_total = stock_total-${num},sale_count = sale_count + ${num}
WHERE
distributor_id = #{distributor}
AND goods_id = #{goodsId}
AND stock_total >= ${num}
3、使用redis锁排队处理