Mặc dù tài liệu không hoàn toàn rõ ràng, nhưng nó nói rõ rằng:
Nếu lệnh INSERT chứa mệnh đề RETURNING, kết quả sẽ tương tự như lệnh SELECT chứa các cột và giá trị được xác định trong danh sách RETURNING, được tính trên (các) hàng được chèn bởi lệnh.
Bây giờ "tương tự như" không phải là một đảm bảo không chính xác và tôi đã nêu ra điều này để thảo luận về danh sách gửi thư ... nhưng trên thực tế, PostgreSQL sẽ không làm rối thứ tự các giá trị trong RETURNING
. Không chắc chúng ta sẽ có thể làm được ngay cả khi chúng ta muốn tối ưu hóa, bởi vì quá nhiều ứng dụng dựa vào nó được sắp xếp giống như đầu vào.
Vì vậy, ... cho INSERT INTO ... VALUES (...), (...), ... RETURNING ...
và cho INSERT INTO ... SELECT ... ORDER BY ... RETURNING ...
nên an toàn khi giả định rằng quan hệ kết quả theo cùng thứ tự với đầu vào.