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

SQL, Postgres OIDs, was sind sie und warum sind sie nützlich?

OIDs geben Ihnen im Grunde eine eingebaute ID für jede Zeile, die in einer Systemspalte enthalten ist (im Gegensatz zu einer Benutzerbereichsspalte). Das ist praktisch für Tabellen, in denen Sie keinen Primärschlüssel, doppelte Zeilen usw. haben. Wenn Sie beispielsweise eine Tabelle mit zwei identischen Zeilen haben und die älteste der beiden löschen möchten, können Sie dies mit der tun oid-Spalte.

OIDs werden mit 4-Byte-Ganzzahlen ohne Vorzeichen implementiert. Das sind sie nicht Unique–OID-Zähler wird bei 2³²-1 umlaufen. OID werden auch verwendet, um Datentypen zu identifizieren (siehe /usr/include/postgresql/server/catalog/pg_type_d.h ).

Meiner Erfahrung nach wird die Funktion in den meisten Postgres-gestützten Anwendungen im Allgemeinen nicht verwendet (wahrscheinlich teilweise, weil sie nicht dem Standard entsprechen), und ihre Verwendung ist im Wesentlichen veraltet:

In PostgreSQL 8.1 ist default_with_oids standardmäßig deaktiviert; in früheren Versionen von PostgreSQL war es standardmäßig aktiviert.

Die Verwendung von OIDs in Benutzertabellen gilt als veraltet, daher sollten die meisten Installationen diese Variable deaktiviert lassen. Anwendungen, die OIDs für eine bestimmte Tabelle benötigen, sollten beim Erstellen der Tabelle WITH OIDs angeben. Diese Variable kann aus Gründen der Kompatibilität mit alten Anwendungen aktiviert werden, die diesem Verhalten nicht folgen.