请考虑存在充满记录的存储表。将有许多并发请求从存储表中选择并拥有一些记录。在没有碰撞的情况下选择并更新MySQL中的几行
我不确定,也不知道如何使用Transcations来结合select和update来完成我没有任何联盟的情况。
例如,这是我的表:
+----+------+----------+
| id | name | is_taken |
+----+------+----------+
| 1 | a | 1 |
| 2 | b | 0 |
| 3 | c | 0 |
| 4 | aa | 1 |
| 5 | bb | 0 |
| 6 | dd | 0 |
| 7 | e | 0 |
| 8 | ff | 0 |
+----+------+----------+
-
-- first select them
SELECT * FROM `STASH` WHERE `is_taken` = 0 LIMIT 2
-- then update and take them to stop others to taking them
UPDATE `STASH` SET `is_taken` = 1 WHERE `is_taken` = 0