PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

INSERT RETURNING có đảm bảo trả lại hàng theo đúng thứ tự không?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với cơ sở dữ liệu heroku với pgadmin

  2. Tạo chỉ mục duy nhất một phần với sqlalchemy trên Postgres

  3. Người dùng ứng dụng so với Bảo mật cấp hàng

  4. Cấu trúc lại một hàm PL / pgSQL để trả về kết quả đầu ra của các truy vấn SELECT khác nhau

  5. Kiểm tra Spring Data JPA không hoạt động đối với phương pháp cập nhật JpaRepository với chú thích @Modizing, tại sao?