0
我有一個具有值ID和狀態的表。我想更新狀態爲0的單個項目並將其狀態設置爲1,然後獲取其ID以便可以處理它。有幾個線程會這樣做,所以我需要只有一個線程更新狀態並處理ID。如何更新,然後選擇更新的行
基本上,我試圖避免使用消息隊列。這可能只是使用SQL?我基本上有一個將插入和提取這些項目的Java應用程序。我只想實現一種排隊機制而不使用隊列服務器。
我有一個具有值ID和狀態的表。我想更新狀態爲0的單個項目並將其狀態設置爲1,然後獲取其ID以便可以處理它。有幾個線程會這樣做,所以我需要只有一個線程更新狀態並處理ID。如何更新,然後選擇更新的行
基本上,我試圖避免使用消息隊列。這可能只是使用SQL?我基本上有一個將插入和提取這些項目的Java應用程序。我只想實現一種排隊機制而不使用隊列服務器。
如果你的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沒辦法同時更新記錄並在一個步驟中選擇更新的記錄。
如果您正在更新表格,您是否需要該ID來執行此操作?在這種情況下,你已經有ID –
是的,你是對的,我想我會做的是選擇1,其中狀態= 0然後更新它,但我不想要2個線程在同一個工作。 –