PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgres INSERT INTO avec commande SELECT

J'ai demandé sur la liste de diffusion Postgres et ils m'ont aidé à clarifier. Il s'avère qu'il s'agit d'une réponse spécifique à la base de données, donc si vous lisez ceci et utilisez une base de données différente, la réponse peut ne pas être la même.

Postgres, explicitement à partir de 9.6, insérera logiquement dans l'ordre du jeu de résultats renvoyé.

Le comportement est explicitement codifié dans ce commit :https://github.com/postgres/postgres/ valider/9118d03a8cca3d97327c56bf89a72e328e454e63

À partir de la description du commit :

tl;dr; L'ordre d'insertion est un détail d'implémentation, mais délibérément codé dans Postgres 9.6 et supérieur pour correspondre à son intuition. Avant la version 9.6, il n'y avait aucune garantie.