我有一个具有值ID和状态的表。我想更新状态为0的单个项目并将其状态设置为1,然后获取其ID以便可以对其进行处理。会有几个线程这样做,所以我需要只有一个线程更新状态并处理ID。
基本上,我试图避免使用消息队列。这可以只使用SQL吗?我基本上有一个Java应用程序,将插入和获取这些项目。我只想在不使用队列服务器的情况下实现一种排队机制。
答案 0 :(得分:1)
如果您的ID是,例如1234,那么您需要让您的应用程序对数据库执行此操作:
update MyTable set State = 0 where ID = 1234
然后:
select State, other_field_1, other_field_2, other_field_N
from MyTable where ID = 1234
SQL无法同时更新记录并选择更新的记录。