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 .