【发布时间】:2015-11-13 16:41:56
【问题描述】:
请考虑有一个充满记录的存储表。将有许多并发请求从存储表中挑选和拥有一些记录。
我不确定,也不知道如何使用 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
【问题讨论】:
标签: mysql transactions innodb mariadb