Использую СУБД PGSQL.
Нужно получить мин. значение CreateDate из таблицы документ
SQL код:
SELECT MIN("CreateDate")
FROM "Document"
если минимальная дата < текущей в цикле вешается транзация и пересчитывается поле CreateDate, достаю записи
таким запросом:
SQL код:
SELECT *
FROM "Document"
WHERE "CreateDate" < NOW()::DATE
ORDER BY "CreateDate"
LIMIT 10
FOR UPDATE SKIP LOCKED
Обновление записей
SQL код:
UPDATE "Document"
SET "CreateDate" = ...
...
Насколько понимаю логику работы SELECT FOR UPDATE SKIP LOCKED при паральленых вызовах
будут взяты не заблокированные записи.
Как понимаю проблема будет возникать при получении мин. значение CreateDate,
SQL код:
SELECT MIN("CreateDate")
FROM "Document"
заблокированные записи будут пропущены и актуальное значение не получить.
Подскажите пож-ста, можно как-то исправить эту проблему?