Thanks ... I was afraid it would as messy as it is; unfortunately Oracle seems to have a way to gather at least some of this in one (ugly) SQL command and I was hoping for some equivalent trick.
Greg W. (apologies for top-posting -- limited mail reader) -----Original Message----- From: Tom Lane [mailto:[EMAIL PROTECTED] Sent: Sat 8/4/2007 9:51 AM To: Gregory Williamson Cc: [email protected] Subject: Re: [GENERAL] List tables in reverse dependancy order "Gregory Williamson" <[EMAIL PROTECTED]> 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
