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 に答える