нужно сделать селект и достать записи с таблицы А у которых нужный мне статус. потом мне нужно обработать записи из других таблиц, которые относятся к записям, которые я только что извлек из таблицы А. но при этом другой поток приложения может запустить эту самую процедуру в это же время, мне нужно гарантировать что другая процедура не начнет обрабатывать записи с таблицы А которые уже обрабатываются. как лучше это сделать?
сначала я думал заселектить записи из таблицы А в переменную, потом изменить им статус (чтобы селекты в других процедурах уже не трогали эти записи), сделать коммит и дальше спокойно обрабатывать. но первый селект и апдейт статуса это 2 отдельных выражения, то есть гарантии изоляции все равно не будет?
Select for update
если вся обработка проходит в одной транзакции.
Обсуждают сегодня