mysql - 返回未被其他人更新的行

时间:2017-07-16 02:42:04

标签: mysql select locking

我有一项服务,很多人会并行访问数据库。每次,每个人都会请求50条尚未处理的记录。如,

./filename_bib

然后手动更新它们(这意味着它们将被分配不同的值)。 我想要做的是返回50个不同的记录给每个人进行更新。实现它的正确方法是什么?

我试过了

select * from service where update = -1 limit 50;

但似乎它会阻止整个数据库。

1 个答案:

答案 0 :(得分:0)

不要<audio id="aud" aud controls></audio><br> <label>start: <input id="min" type="number" value="10" min="0" max="119"></label> <label>end: <input id="max" type="number" value="20" min="1" max="120"></label> <button id="btn">re-load</button>,而是专门为要求提供专栏。这是SELECT ... FOR UPDATE,但您将使用一些随机或唯一标识符填充它。 UUID或其他不明确的值将正常工作。

例如:

DEFAULT NULL

注意响应中修改的行数。如果它大于零,那么您声明了一些内容:

UPDATE service SET claimed=? WHERE claimed IS NULL LIMIT 50

这将获取之前声明的值。