Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-novice by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group