我正在开发我的演示项目 - 这是一个简单的银行系统。
我遇到了一个问题。
我需要在我的账户里添加一些虚拟货币。
但我需要像“原子操作”一样进行操作,即在更新之前查询一些数据。
例如:
Query table A // select from table A
Query table B // select from table B
if (A + B > X)
Add money // insert into table C
问题是,在查询A或B期间,另一个线程可能会开始一些工作。
我应该使用什么样的mysql技术?
例子: 快乐的例子
User see A = 1, B = 1 in dashboard
User will send request
SELECT A
SELECT B
INSERT A + B // result is 2
糟糕的例子
User see A = 1, B = 1 in dashboard
User will send request
SELECT A
// SOMEONE CHANGED B RIGHT NOW TO 10 !
SELECT B
INSERT A + B // result is 12