ORDER BY
はありません UPDATE
で コマンド。
しかし、SELECT
にはあります 。 行レベルのロック>
FOR UPDATE
条項
サブクエリ内:
UPDATE foo f
SET a = 1
FROM (
SELECT b FROM foo
WHERE b IN (1,2,3,4)
ORDER BY b
FOR UPDATE
) upd
WHERE f.b = upd.b;
もちろん、b
UNIQUE
である必要があります または、ORDER BY
に式を追加する必要があります 明確にするための条項。
そして、すべてに同じ順序を適用する必要があります UPDATE
、DELETE
およびSELECT .. FOR UPDATE
テーブルのステートメント。
関連、詳細: