Wiersze są zablokowane w kolejności ORDER BY
klauzula tak jak podczas skanowania tabeli .
Zapytanie jest wykonywane i wiersze są uporządkowane, a następnie PostgreSQL blokuje wiersze w kolejności. Zasadniczo ORDER BY
dzieje się przed FOR UPDATE
.
Teraz może się zdarzyć, że blokowanie wiersza blokuje z powodu blokad utrzymywanych przez współbieżne transakcje. Jeśli tak się stanie, a my jesteśmy na READ COMMITTED
poziom izolacji, PostgreSQL czeka dopóki nie zdoła uzyskać blokady i potem pobierze aktualną wersję rzędu, który blokuje.
Jeżeli transakcja równoległa zmodyfikowała kolumny definiujące kolejność, to ostateczny wynik nie będzie w kolejności zdefiniowanej przez ORDER BY
.