Řádky jsou uzamčeny v pořadí ORDER BY
klauzule jak tomu bylo, když byla tabulka naskenována .
Dotaz je proveden a řádky uspořádány, poté PostgreSQL uzamkne řádky v pořadí. V podstatě ORDER BY
proběhne před FOR UPDATE
.
Nyní se může stát, že zamknutí řádku zablokuje kvůli zámkům drženým souběžnými transakcemi. Pokud se tak stane a my jsme u READ COMMITTED
úroveň izolace, PostgreSQL čeká dokud nezíská zámek a pak načte aktuální verzi řádku, který uzamkne.
Pokud souběžná transakce změnila sloupce, které definují řazení, konečný výsledek nebude v pořadí definovaném ORDER BY
.