PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

SQL, OID Postgres, cosa sono e perché sono utili?

Gli OID fondamentalmente ti danno un ID integrato per ogni riga, contenuto in una colonna di sistema (al contrario di una colonna dello spazio utente). È utile per le tabelle in cui non hai una chiave primaria, hai righe duplicate, ecc. Ad esempio, se hai una tabella con due righe identiche e desideri eliminare la più vecchia delle due, puoi farlo usando il colonna id.

Gli OID vengono implementati utilizzando interi senza segno a 4 byte. Lo sono non Il contatore univoco–OID si avvolgerà a 2³²-1. Gli OID vengono utilizzati anche per identificare i tipi di dati (vedi /usr/include/postgresql/server/catalog/pg_type_d.h ).

Nella mia esperienza, la funzionalità è generalmente inutilizzata nella maggior parte delle applicazioni supportate da Postgres (probabilmente in parte perché non sono standard) e il loro utilizzo è essenzialmente deprecato:

In PostgreSQL 8.1 default_with_oids è disattivato per impostazione predefinita; nelle versioni precedenti di PostgreSQL, era attivo per impostazione predefinita.

L'uso di OID nelle tabelle utente è considerato deprecato, quindi la maggior parte delle installazioni dovrebbe lasciare questa variabile disabilitata. Le applicazioni che richiedono OID per una determinata tabella devono specificare WITH OIDS durante la creazione della tabella. Questa variabile può essere abilitata per la compatibilità con le vecchie applicazioni che non seguono questo comportamento.