Ich glaube, dass Postgres verwendet ein internes Feld namens OID, die nach sortiert werden kann. Versuche Folgendes.
select *,OID from table order by OID desc;
Es gibt einige Einschränkungen dieses Ansatzes wie in SQL, Postgres OIDs, What are they and why are they useful? beschrieben
Anscheinend ist der OID-Sequenz „bedeutet“ wickeln, wenn es 4B 6. im Wesentlichen So übersteigt es ein globaler Zähler ist, die wickeln kann. Wenn es Wrap tut, kann eine gewisse Verlangsamung auftritt beginnen, wenn es verwendet wird und „gesucht“ für eindeutige Werte usw.
Siehe auch https://wiki.postgresql.org/wiki/FAQ#What_is_an_OID.3F
NB - in der neueren Version von Postgres diese veraltet sein könnten (https://www.postgresql.org/docs/8.4/static/runtime-config-compatible.html#GUC-DEFAULT-WITH-OIDS)
Obwohl Sie in der Lage sein sollten, Tabellen mit OID auch in der neuesten Version zu erstellen, wenn die nach https://www.postgresql.org/docs/9.5/static/sql-createtable.html
explizit auf dem Tisch getan erstellen Obwohl das Verhalten, das Sie in der CLI beobachten Nachteile erscheint es ist kein Standard und kann nicht abhängen. Wenn Sie regelmäßig die zuletzt hinzugefügten Zeilen in einer bestimmten Tabelle manuell anzeigen müssen, können Sie ein Zeitstempelfeld oder ein anderes sortierbares Feld hinzufügen und die Abfrage möglicherweise sogar in eine gespeicherte Funktion einbinden. Ich schätze, der Ansatz hängt von Ihrem speziellen Anwendungsfall ab .
Es gibt keine "erste" oder "letzte" Zeile in einer Tabelle. Zeilen in einer Tabelle werden *** NICHT *** sortiert. Der einzige *** Weg, um eine bestimmte Sortierreihenfolge zu erhalten, ist 'ORDER BY' zu verwenden. –