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

Tupel werden nicht sequentiell in Datenbanktabelle eingefügt?

Dies ist ein Missverständnis. Es gibt keine "natürliche" Reihenfolge in einer relationalen Datenbanktabelle. Während Zeilen normalerweise nacheinander zu der physischen Datei eingefügt werden, die eine Tabelle enthält, kann eine breite Palette von Aktivitäten die physische Reihenfolge neu mischen. Und Abfragen, die mehr als einen einfachen (nicht parallelisierten) sequentiellen Scan ausführen, können Zeilen in beliebiger Reihenfolge zurückgeben. Das entspricht Standard-SQL.

Die angezeigte Reihenfolge ist beliebig, es sei denn, Sie fügen ORDER BY hinzu zur Abfrage.

pgAdmin3 ordnet Zeilen standardmäßig nach dem Primärschlüssel (sofern nicht anders angegeben). Ihre Spalte ist vom Typ varchar und die Zeilen sind alphabetisch geordnet (entsprechend Ihrer aktuellen Ländereinstellung). Alles beabsichtigt, alles so, wie es sein sollte.

Um Zeilen so zu sortieren, wie Sie es zu erwarten scheinen, können Sie in Ihrem Text einige '0' auffüllen:

...
typename_0009
typename_0010
...

Die richtige Lösung wäre es jedoch, eine numerische Spalte nur mit der Nummer zu haben.

Sie könnten an Natursorten interessiert sein. Vielleicht interessieren Sie sich auch für eine serial Spalte.