Die Zeilen werden in der Reihenfolge des ORDER BY gesperrt Klausel wie beim Scannen der Tabelle .
Die Abfrage wird ausgeführt und die Zeilen sortiert, dann sperrt PostgreSQL die Zeilen der Reihe nach. Im Wesentlichen ORDER BY geschieht vor FOR UPDATE .
Nun kann es passieren, dass das Sperren einer Zeile blockiert aufgrund von Sperren, die von gleichzeitigen Transaktionen gehalten werden. Wenn das passiert, sind wir beim READ COMMITTED Isolationsstufe, PostgreSQL wartet bis es die Sperre erhalten kann und dann die aktuelle Version holt der Reihe, die es sperrt.
Wenn die gleichzeitige Transaktion die Spalten geändert hat, die die Reihenfolge definieren, wird das Endergebnis nicht in der durch ORDER BY definierten Reihenfolge sein .