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

SQL, Postgres OID'er, hvad er de, og hvorfor er de nyttige?

OID'er giver dig grundlæggende et indbygget id for hver række, indeholdt i en systemkolonne (i modsætning til en brugerrumskolonne). Det er praktisk til tabeller, hvor du ikke har en primær nøgle, har dublerede rækker osv. Hvis du f.eks. har en tabel med to identiske rækker, og du vil slette den ældste af de to, kan du gøre det ved at bruge oid kolonne.

OID'er implementeres ved hjælp af 4-byte usignerede heltal. Det er de ikke unik-OID-tælleren vil vikle rundt på 2³²-1. OID bruges også til at identificere datatyper (se /usr/include/postgresql/server/catalog/pg_type_d.h ).

Efter min erfaring er funktionen generelt ubrugt i de fleste postgres-understøttede applikationer (sandsynligvis delvist fordi de ikke er standard), og deres brug er i det væsentlige forældet:

I PostgreSQL 8.1 er default_with_oids deaktiveret som standard; i tidligere versioner af PostgreSQL var den slået til som standard.

Brugen af ​​OID'er i brugertabeller betragtes som forældet, så de fleste installationer bør lade denne variabel være deaktiveret. Programmer, der kræver OID'er for en bestemt tabel, skal angive MED OIDS, når tabellen oprettes. Denne variabel kan aktiveres for kompatibilitet med gamle applikationer, der ikke følger denne adfærd.



  1. Hvordan indlæses en XML-fil i en database ved hjælp af en SSIS-pakke?

  2. Postgres tabel kolonne navn begrænsninger?

  3. Sådan opretter du en offline internationaliseringsapp:Brug Sqlite-databasen

  4. Er COUNT(rowid) hurtigere end COUNT(*)?