我有一个包含任务的表,该任务应在特定时间执行。为了执行,作业由执行者使用其workerID进行标记。
与下一个SQL:

UPDATE table1.jobs
SET workerID=10
WHERE workerID IS NULL and time < NOW()
ORDER BY time LIMIT 1


我可以标记最旧的未标记作业。

现在,我希望仅在还没有标记有workerID 10的作业时执行此操作。

是否可以在一个查询中完成?

最佳答案

您可以创建worker_id as Unique key并完成。
如果表中已经有workerID 10,则UPDATE查询将永远不会执行。

09-25 10:02