PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menentukan OID tabel di Postgres 9.1?

Untuk mendapatkan tabel OID, cast ke tipe pengenal objek regclass (saat terhubung ke DB yang sama):

SELECT 'mytbl'::regclass::oid;

Ini menemukan tabel pertama (atau tampilan, dll.) dengan nama yang diberikan di sepanjang search_path atau memunculkan pengecualian jika tidak ditemukan.

Skema-kualifikasi nama tabel untuk menghapus ketergantungan pada jalur pencarian:

SELECT 'myschema.mytbl'::regclass::oid;

Di Postgres 9.4 atau nanti Anda juga dapat menggunakan to_regclass('myschema.mytbl') , yang tidak memunculkan pengecualian jika tabel tidak ditemukan:

  • Cara memeriksa apakah ada tabel dalam skema tertentu

Maka Anda hanya perlu query tabel katalog pg_attribute untuk keberadaan kolom:

SELECT TRUE AS col_exists
FROM   pg_attribute 
WHERE  attrelid = 'myschema.mytbl'::regclass
AND    attname  = 'mycol'
AND    NOT attisdropped  -- no dropped (dead) columns
-- AND attnum > 0        -- no system columns (you may or may not want this)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pertahankan zona waktu dalam jenis stempel waktu PostgreSQL

  2. Cara Mendefinisikan Kunci Utama Peningkatan Otomatis di PostgreSQL

  3. Menghapus catatan dari database postgresql jarak jauh menggunakan daftar yang disediakan secara lokal

  4. Peran tidak ada dan tidak dapat membuat database saat menggunakan PostgreSQL

  5. Alat untuk menghasilkan diagram tabel database dengan PostgreSQL?