sql >> Database >  >> RDS >> PostgreSQL

SQL, Postgres OID's, wat zijn het en waarom zijn ze nuttig?

OID's geven u in feite een ingebouwde id voor elke rij, opgenomen in een systeemkolom (in tegenstelling tot een kolom met gebruikersruimte). Dat is handig voor tabellen waar je geen primaire sleutel hebt, dubbele rijen hebt, enz. Als je bijvoorbeeld een tabel hebt met twee identieke rijen en je wilt de oudste van de twee verwijderen, dan kun je dat doen met de oid kolom.

OID's worden geïmplementeerd met behulp van niet-ondertekende gehele getallen van 4 bytes. Ze zijn niet unique–OID-teller loopt rond op 2³²-1. OID wordt ook gebruikt om gegevenstypen te identificeren (zie /usr/include/postgresql/server/catalog/pg_type_d.h ).

In mijn ervaring wordt de functie over het algemeen niet gebruikt in de meeste toepassingen met postgres-ondersteuning (waarschijnlijk gedeeltelijk omdat ze niet-standaard zijn), en het gebruik ervan is in wezen verouderd:

In PostgreSQL 8.1 is default_with_oids standaard uitgeschakeld; in eerdere versies van PostgreSQL was het standaard ingeschakeld.

Het gebruik van OID's in gebruikerstabellen wordt als verouderd beschouwd, dus de meeste installaties zouden deze variabele uitgeschakeld moeten laten. Toepassingen die OID's voor een bepaalde tabel vereisen, moeten WITH OIDS specificeren bij het maken van de tabel. Deze variabele kan worden ingeschakeld voor compatibiliteit met oude applicaties die dit gedrag niet volgen.



  1. Hoe kan ik de eerste dag van een maand in SQL selecteren?

  2. Wat is SQLite?

  3. Volledige deelname aan SQL

  4. Querycombinaties met geneste reeks records in JSON-gegevenstype