OID pada dasarnya memberi Anda id bawaan untuk setiap baris, yang terdapat dalam kolom sistem (sebagai lawan dari kolom ruang pengguna). Itu berguna untuk tabel di mana Anda tidak memiliki kunci utama, memiliki baris duplikat, dll. Misalnya, jika Anda memiliki tabel dengan dua baris identik, dan Anda ingin menghapus yang terlama dari keduanya, Anda bisa melakukannya menggunakan kolom oid.
OID diimplementasikan menggunakan 4-byte unsigned integer. Mereka tidak unique–OID counter akan melingkar pada 2³²-1. OID juga digunakan untuk mengidentifikasi tipe data (lihat /usr/include/postgresql/server/catalog/pg_type_d.h
).
Dalam pengalaman saya, fitur ini umumnya tidak digunakan di sebagian besar aplikasi yang didukung postgres (mungkin sebagian karena tidak standar), dan penggunaannya pada dasarnya tidak digunakan lagi:
Di PostgreSQL 8.1 default_with_oids tidak aktif secara default; di versi PostgreSQL sebelumnya, ini diaktifkan secara default.
Penggunaan OID dalam tabel pengguna dianggap tidak digunakan lagi, sehingga sebagian besar penginstalan harus membiarkan variabel ini dinonaktifkan. Aplikasi yang memerlukan OID untuk tabel tertentu harus ditentukan WITH OIDS saat membuat tabel. Variabel ini dapat diaktifkan untuk kompatibilitas dengan aplikasi lama yang tidak mengikuti perilaku ini.