information_schema
Definitionen af en PostgreSQL database ligger i systemtabeller i databasen.
Adgang til disse foregår gennem information_schema. Fra pgAdmin ses den under:
- Catalogs -> ANSI -> Catalog Objects
Mest anvendte er:
- tables (tabeller og views)
- columns (kolonner)
- key_column_usage (primær, fremmed eller unik nøgler)
- table_constraints (definition af constraints)
Eksempel - vis oplysning om alle fremmednøgleconstraints i databasen:
SELECT 
  tc.constraint_name,
  kcu.table_name,
  kcu.column_name,
  ccu.table_name,
  ccu.column_name
FROM 
  information_schema.key_column_usage kcu JOIN
  information_schema.table_constraints tc ON (kcu.constraint_name = tc.constraint_name AND tc.constraint_type='FOREIGN KEY') JOIN
  information_schema.constraint_column_usage ccu ON (ccu.constraint_name = tc.constraint_name)
Der findes også et pg_catalog postgres metadata katalog, men benyt så vidt muligt information_schema.