行はORDER BY
の順序でロックされます 条項テーブルがスキャンされたときの状態 。
クエリが実行され、行が順序付けられると、PostgreSQLは行を順番にロックします。基本的に、ORDER BY
FOR UPDATE
の前に発生します 。
これで、行ブロックをロックすることが発生する可能性があります。 並行トランザクションによって保持されているロックのため。それが発生し、READ COMMITTED
にいる場合 分離レベル、PostgreSQLは待機 ロックを取得して現在のバージョンを取得するまで ロックする行の。
並行トランザクションが順序を定義する列を変更した場合、最終結果はORDER BY
で定義された順序にはなりません。 。