一般而言,查询状态的时候,用 SELECT ... FOR UPDATE WHERE ... 这个时候,不光突出状态,还把这条记录给锁住了,除了当前事务,其他事务无法读写该记录 继而更新 UPDATE ... SET XXX = 1 WHERE .... 然后COMMIT,放掉锁。其他事务才能读取,这个时候,读取的必然是更新后的状态。
------解决方案--------------------
------解决方案-------------------- select for update 悲观锁
------解决方案--------------------