sql >> Database teknologi >  >> RDS >> PostgreSQL

Er INSERT RETURNING garanteret at returnere tingene i den rigtige rækkefølge?

Selvom dokumentationen ikke er helt klar, står der, at:

Hvis INSERT-kommandoen indeholder en RETURNING-sætning, vil resultatet ligne resultatet af en SELECT-sætning, der indeholder de kolonner og værdier, der er defineret i RETURNING-listen, beregnet over rækken/rækkerne, der er indsat af kommandoen.

Nu er "ligner" ikke en jernbeklædt garanti, og jeg har rejst dette til diskussion på mailinglisten ... men i praksis vil PostgreSQL ikke rode med rækkefølgen af ​​værdier i RETURNING . Det er usandsynligt, at vi nogensinde vil være i stand til det, selvom vi ønsker det for optimering, fordi for mange apps er afhængige af, at det bliver bestilt på samme måde som inputtet.

Så... for INSERT INTO ... VALUES (...), (...), ... RETURNING ... og for INSERT INTO ... SELECT ... ORDER BY ... RETURNING ... det bør være sikkert at antage, at resultatrelationen er i samme rækkefølge som inputtet.



  1. Forespørg efter PostgreSQL med Npgsql og Entity Framework ved hjælp af unaccent

  2. Hvordan påvirker indekser databaseydelsen?

  3. UNION ALLE Optimering

  4. Sammenlign datoer i MySQL