PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres INSERT INTO mit SELECT-Reihenfolge

Ich habe auf der Postgres-Mailingliste nachgefragt und sie waren hilfreich bei der Klärung. Es stellt sich heraus, dass dies eine datenbankspezifische Antwort ist. Wenn Sie dies also lesen und eine andere Datenbank verwenden, ist die Antwort möglicherweise nicht dieselbe.

Postgres, explizit ab 9.6, fügt logisch in der Reihenfolge der zurückgegebenen Ergebnismenge ein.

Das Verhalten ist in diesem Commit explizit kodifiziert:https://github.com/postgres/postgres/ commit/9118d03a8cca3d97327c56bf89a72e328e454e63

Aus der Commit-Beschreibung:

tl;dr; Die Reihenfolge der Einfügungen ist ein Implementierungsdetail, aber absichtlich in Postgres 9.6 und höher codiert, um der eigenen Intuition zu entsprechen. Vor 9.6 gab es keine Garantien.