PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy INSERT RETURNING gwarantuje zwrot rzeczy we właściwej kolejności?

Chociaż dokumentacja nie jest całkowicie jasna, stwierdza, że:

Jeśli polecenie INSERT zawiera klauzulę RETURNING, wynik będzie podobny do wyniku instrukcji SELECT zawierającej kolumny i wartości zdefiniowane na liście RETURNING, obliczone dla wierszy wstawionych przez polecenie.

Teraz "podobny do" nie jest niezawodną gwarancją i zgłosiłem to do dyskusji na liście dyskusyjnej ... ale w praktyce PostgreSQL nie będzie zadzierać z kolejnością wartości w RETURNING . Jest mało prawdopodobne, że kiedykolwiek będziemy w stanie to zrobić, nawet jeśli chcemy optymalizować, ponieważ zbyt wiele aplikacji polega na tym, że są one uporządkowane tak samo jak dane wejściowe.

Czyli... dla INSERT INTO ... VALUES (...), (...), ... RETURNING ... i dla INSERT INTO ... SELECT ... ORDER BY ... RETURNING ... należy bezpiecznie założyć, że relacja wyniku jest w tej samej kolejności co dane wejściowe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest PostgreSQL?

  2. Jak wykonać zapytanie wybierające w bloku DO?

  3. Jak wyświetlić indeksy utworzone dla tabeli w postgresie

  4. Wartość Postgres SSLMode wymaga nieważności, gdy obsługa protokołu SSL nie jest skompilowana przy użyciu zewnętrznego opakowania danych

  5. Postgres sql wstawia błąd składni zapytania z phpPgAdmin