Първо, минимум трябва да правите SELECT ... FOR UPDATE така че заключвате редовете срещу други SELECT ... FOR [SHARE|UPDATE] достъп. Трябва да направите това вътре в транзакция и да задържите тази транзакция, докато актуализирате последния ред и commit .
Редовете, които SELECT ... FOR UPDATE не заключен срещу нормален SELECT; те все още са четими за други транзакции, които не използват FOR UPDATE или FOR SHARE .
Още по-добре, опитайте се да перифразирате всичко като UPDATE ... FROM или друга базирана на набор операция, при която вършите цялата работа в една заявка. Като цяло ще работи значително по-добре от SELECT ... FOR UPDATE последвано от поток от UPDATE с.