на сервере sql
begin tran select * from foos with (rowlock, xlock, holdlock) where id =7 ... commit tran
будет блокировать строку для чтения и записи, и будет удерживать блокировку до конца транзакции ,
есть ли эквивалент в postgresql?
Попробуйте:
BEGIN tran; SELECT * FROM foos FOR UPDATE; ... COMMIT tran;
Ссылка: ВЫБРАТЬ ... ДЛЯ ОБНОВЛЕНИЯ
Взгляните на pg_advisory_lock ()