Postgres heeft een andere manier om informatie over systeeminhoud op te slaan. Dit heet Systeemcatalogi .
In Firebird retourneert uw zoekopdracht in feite een rij voor elke kolom van een tabel in elk schema met een extra integerkolom die is toegewezen aan een veldgegevenstype.
In Postgres met behulp van systeemtabellen in pg_catalog
schema kan iets soortgelijks worden bereikt met behulp van deze query:
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
Bovenstaande zoekopdracht retourneert ook systeemcatalogi. Als u wilt uitsluiten ze moet je nog een JOIN toevoegen aan pg_namespace
en een waar-clausule met pg_namespace.nspname <> 'pg_catalog'
, omdat dit het schema is waarin systeemcatalogi worden opgeslagen.
Als je ook datatypenamen wilt zien in plaats van hun representatieve nummers, voeg dan een JOIN toe aan pg_type
.
Informatieschema bestaat uit een verzameling weergaven. In de meeste gevallen hebt u niet de volledige SQL-query nodig die achter de weergave staat, dus het gebruik van systeemtabellen geeft u betere prestaties. U kunt echter de weergavedefinitie inspecteren, om u op weg te helpen met de tabellen en voorwaarden die worden gebruikt om een uitvoer te vormen.