Atomowa aktualizacja. SELECT w Postgres
Buduję pewnego rodzaju mechanizm kolejkowania. Istnieją wiersze danych, które wymagają przetwarzania, i flaga stanu. Używamupdate .. returning
klauzula do zarządzania:
UPDATE stuff
SET computed = 'working'
WHERE id = (SELECT id from STUFF WHERE computed IS NULL LIMIT 1)
RETURNING *
Czy zagnieżdżona część zaznaczona jest taka sama jak blokada aktualizacji, czy też mam tutaj warunki wyścigu? Jeśli tak, czy wewnętrzna selekcja musi byćselect for update
?