0

我有一个存储在 MySQL 表中的多个用户的作业列表。我目前计划在客户端应用程序中执行以下操作:

  • 向 MySQL 服务器询问未分配给任何人的作业。
  • 标记分配给我自己的第一份工作。

但问题是,如果 2 个用户以某种方式获得相同的“未分配”作业列表,他们都会将同一个作业标记为已分配。那么如何管理这种情况,并确保每个用户只获得一个唯一的未分配工作呢?

我试图避免使用存储过程,因为如果可能的话,我希望应用程序中的所有代码。

4

1 回答 1

2

抱歉,按照你喜欢的方式,你需要一个触发器来避免发送相同的列表,在查询时分配。或者你可以在查询的时候盲目接受和分配......像这样的东西:

   Update jobs set allocatedto=myid where status=notallocated limit 1
   select * from jobs where status=allocated and allocatedto=myid limit 1;
   select * from jobs where status=not allocated;
于 2013-01-27T08:57:34.197 回答