ドキュメントは完全に明確ではありませんが、次のように述べています。
INSERTコマンドにRETURNING句が含まれている場合、結果は、コマンドによって挿入された行に対して計算された、RETURNINGリストで定義された列と値を含むSELECTステートメントの結果と同様になります。
現在、「類似」は確固たる保証ではありません。これをメーリングリストでの議論のために提起しました...しかし実際には、PostgreSQLはRETURNING
の値の順序を混乱させることはありません。 。最適化を行いたい場合でも、入力と同じ順序で並べ替えることに依存しているアプリが多すぎるため、これが可能になる可能性はほとんどありません。
つまり...forINSERT INTO ... VALUES (...), (...), ... RETURNING ...
INSERT INTO ... SELECT ... ORDER BY ... RETURNING ...
結果の関係は入力と同じ順序であると想定しても安全です。