OID'ler temel olarak, sistem sütununda (kullanıcı alanı sütununun aksine) bulunan her satır için yerleşik, genel olarak benzersiz bir kimlik verir. Birincil anahtara sahip olmayan, yinelenen satırlarınız vb. Olmayan tablolar için kullanışlıdır. Örneğin, iki aynı satır içeren bir tablonuz varsa ve bu ikisinin en eskiini silmek istiyorsanız, bunu oid sütunu. Tecrübelerime göre
, özelliği (bunlar standart dışı çünkü muhtemelen kısmen) en postgres destekli uygulamalarda genellikle kullanılmayan ve their use is essentially deprecated:
PostgreSQL 8.1 default_with_oids ise
varsayılan olarak kapalıdır olduğunu ; PostgreSQL'in önceki sürümlerinde, varsayılan olarak açıktı.
kullanıcı tablolarındaki OIDler kullanımı
böylece en tesisat bu değişken özürlü bırakmalısınız, onaylanmadı. 'un belirli bir tablo için OID'leri gerektirdiği uygulamalar tablonun tablosunu oluştururken OIDS ile belirtmelidir. Bu değişken, bu davranışına uymayan eski uygulamalarıyla uyumluluk için etkinleştirilmiş olabilir.
oids'in benzersiz olması garanti edilmez. Dokümanlardan: "Büyük veya uzun ömürlü bir veritabanında, tezgahın etrafına sarılması mümkündür. Bu nedenle, OID'lerin benzersiz olduğunu varsaymak kötü bir uygulamadır, çünkü bu durumun geçerli olduğundan emin olun." – radiospiel
Sarma, ayrıca, alt OID'ye sahip olan bir sargı etrafında olabileceği için, yalnızca iki satırın eskilerini yalnızca OID'lerine dayalı olarak silemeyeceğinizi ima eder. –
OID'ler, yukarıdaki yorumlara göre, bu yanıtın yazıldığı 2011 yılında ne de küresel olarak benzersiz değildir. Ayrıca, sistem nesneleri için OID'lere ihtiyaç vardır, bu nedenle, satır sayaçlarındaki tüm OID'leri kullanmak, veritabanına OID'leri yeni tablolara atayarak yardımcı olmaz (çizelgeler için değil, satırları için). Ayrıca, veritabanındaki her tablo için bir tekli 4 baytlık tam sayı sayacı gerçekten yeterli olup olmayacağını düşünün. – FuzzyChef