Re: relation between tables

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Mauricio Siqueira de Oliveira <mauricio(dot)oliveiraa(at)uol(dot)com(dot)br>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: relation between tables
Date: 2005-03-29 00:50:19
Message-ID: 20050329005018.GA17577@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Mon, Mar 28, 2005 at 08:30:54PM -0300, Mauricio Siqueira de Oliveira wrote:
>
> Is there any command to display relations between tables? Like, for
> instance, I would like to know what column in what table is linked with
> a particular column in other table.

In psql you can use "\d tablename" to see a table's definition,
including foreign key constraints. If you run "psql -E" or execute
"\set ECHO_HIDDEN" then you can see the SQL queries that psql runs
to get that information, and from those queries you can figure out
how to write your own queries. You'll probably want to be familiar
with the "System Catalogs" chapter of the documentation and the
"System Information Functions" or "Miscellaneous Functions" section
of the "Functions and Operators" chapter.

Here's an example that might show what you're looking for:

SELECT conrelid::regclass AS relname,
conname,
pg_get_constraintdef(oid) AS condef
FROM pg_constraint
WHERE contype = 'f'
ORDER BY conrelid, conname;

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Todd Lewis 2005-03-29 04:10:18 Re: relation between tables
Previous Message Mauricio Siqueira de Oliveira 2005-03-28 23:30:54 relation between tables