多人要抢一个单,一个单抢的次数有限制。
采用乐观锁处理并发。
更新的时候给版本号字段加上 1,然后 UPDATE 会返回一个更新结果的行数,通过这个行数去判断。
UPDATE 必须这样写:
UPDATE T_GOODS g
SET g.total = #total#,
g.version = g.version + 1
WHERE g.name = #name#
AND g.version = #version#
如果更新执行返回的数量是 0 表示产生并发修改了,需要重新获得最新的数据后再进行更新操作。