Postgres memiliki cara lain untuk menyimpan informasi tentang konten sistem. Ini disebut Katalog Sistem .
Di Firebird, kueri Anda pada dasarnya mengembalikan baris untuk setiap kolom tabel di setiap skema dengan kolom Integer tambahan yang memetakan ke tipe data bidang.
Di Postgres menggunakan tabel sistem di pg_catalog
skema sesuatu yang serupa dapat dicapai dengan menggunakan kueri ini:
SELECT
TRIM(c.relname) AS table_name, TRIM(a.attname) AS column_name, a.atttypid AS field_type
FROM pg_class c
LEFT JOIN pg_attribute a ON
c.oid = a.attrelid
AND a.attnum > 0 -- only ordinary columns, without system ones
WHERE c.relkind = 'r' -- only tables
ORDER BY 1,2
Permintaan di atas juga mengembalikan katalog sistem. Jika Anda ingin mengecualikan mereka, Anda perlu menambahkan GABUNG lain ke pg_namespace
dan klausa where dengan pg_namespace.nspname <> 'pg_catalog'
, karena ini adalah skema tempat katalog sistem disimpan.
Jika Anda juga ingin melihat nama tipe data alih-alih nomor perwakilannya, tambahkan GABUNG ke pg_type
.
Skema informasi terdiri dari kumpulan pandangan. Dalam kebanyakan kasus, Anda tidak memerlukan seluruh kueri SQL yang ada di belakang tampilan, jadi menggunakan tabel sistem akan memberi Anda kinerja yang lebih baik. Anda dapat memeriksa definisi tampilan, hanya untuk memulai pada tabel dan kondisi yang digunakan untuk membentuk output.