From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Gregory Williamson" <Gregory(dot)Williamson(at)digitalglobe(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: List tables in reverse dependancy order |
Date: | 2007-08-04 15:51:11 |
Message-ID: | 17006.1186242671@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Gregory Williamson" <Gregory(dot)Williamson(at)digitalglobe(dot)com> writes:
> I'm trying to create a procedure that would let me retrieve a list of =
> tables and views in a database that will be used to control the order in =
> which lookup data is created/loaded. So, much simplified, if table =
> references table B, which in turn references table A, we want output to =
> list table A, B and C in that order.
> I'm sure that this exists -- the pg_dump command must use some similar =
> algorithm to decide in which order to load tables, but I can't see to =
> puzzle this out.
pg_dump expends a fair amount of code on this problem; if you want to
handle the general case with circular references and so on, it's not
simple. You could do worse than to run "pg_dump -s" and postprocess
its output.
If you are only interested in simpler cases then you might be able to
find a simpler solution. For instance if you are only worried about
foreign-key linkages then looking into pg_constraint is much the
easiest way to find out about those.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2007-08-04 15:56:49 | Re: pg_shdepend big |
Previous Message | Tom Lane | 2007-08-04 15:38:21 | Re: could not [extend relation|write block N of temporary file|write to hash-join temporary file] |