Thread: How do I get the list of table names in db
I need to know how to get a list of table names that exist in a particular database using Pg. I know how to do it command line, but I need my scripts to be able to do it for error checking, and I haven't found a single doc on it. -james
On Wed, 5 Aug 1998, James Andrews wrote: > I need to know how to get a list of table names that exist in a particular > database using Pg. I know how to do it command line, but I need my scripts > to be able to do it for error checking, and I haven't found a single doc on > it. select relname from pg_class where relkind='r' and relname !~ '^pg_' relkind='r' gets all relations (tables) and relname!~'^pg_' excludes all system tables. Maarten _____________________________________________________________________________ | TU Delft, The Netherlands, Faculty of Information Technology and Systems | | Department of Electrical Engineering | | Computer Architecture and Digital Technique section | | M.Boekhold@et.tudelft.nl | -----------------------------------------------------------------------------
> I need to know how to get a list of table names that exist in a particular > database using Pg. I know how to do it command line, but I need my scripts > to be able to do it for error checking, and I haven't found a single doc on > it. > > -james Well, here is one way. In your script issue the command: psql -c "\d" -o filename database_name depending on your scripting language you may need to wrap the command around some other command such as: system ("psql -c \"\\d\" -o filename database_name"); in perl. Now with this approach your script will then need to read in the file created by the -o switch. If your in perl you could do something like: open(COMMAND, "psql -c \"\\d\" database_name|") while (<COMMAND>) { print $_; <YOUR CODE GOES HERE> } to not generate a file, and read in the standard output of the psql command. In the the Korn shell you could do: psql -c "\d" database_name| while read LINE do echo $LINE <YOUR CODE GOES HERE> done Hope this helps...james