ABA这是一个幂等性问题,比如非正常情况下导致的库存超卖。
数据库解决ABA的方案:
一个API接口中,我们要修改id=3这条数据:
1、先select id,age,name,v from user where id=3
2、我们将上面查询的v=16和id=3 放入update语句。但是由于某种原因并行了3条修改语句:
3、看一下结果,是不是第一条成功,后面的2次修改没生效
4、只有重新走步骤1重新访问接口的时候,才能修改。因为v已经是17了,本次接口执行只会修改一次。
一个API接口中,我们要修改id=3这条数据:
1、先select id,age,name,v from user where id=3
2、我们将上面查询的v=16和id=3 放入update语句。但是由于某种原因并行了3条修改语句:
3、看一下结果,是不是第一条成功,后面的2次修改没生效
4、只有重新走步骤1重新访问接口的时候,才能修改。因为v已经是17了,本次接口执行只会修改一次。