Thread: Getting a list of tables in a database with Perl

Getting a list of tables in a database with Perl

From
Andrew Magnus
Date:
I would like to know how I can fetch a list of existing tables in a database within a Perl script.  Could someone please tell me how this can be done, or, at least, a good reference to look it up?  Thanks.



Do you Yahoo!?
Yahoo! Web Hosting - Let the expert host your site

Re: Getting a list of tables in a database with Perl

From
Medi Montaseri
Date:
Try this from the command line....

psql -c "\d"

And if you want to bring this into a perl script, try

perl -e '$list = `psql -c "\\d" `; print "$list\n";'

A more readable version is

$list = ` psql -c "\\d" `;
print "$list \n";

Or use DBI and go after pg_tables;

Andrew Magnus wrote:

> I would like to know how I can fetch a list of existing tables in a
> database within a Perl script.  Could someone please tell me how this
> can be done, or, at least, a good reference to look it up?  Thanks.
>
>
> ------------------------------------------------------------------------
> Do you Yahoo!?
> Yahoo! Web Hosting
> <http://rd.yahoo.com/hosting/mailsig/*http://webhosting.yahoo.com> -
> Let the expert host your site





Re: Getting a list of tables in a database with Perl

From
Andrew Magnus
Date:
I am, actually, using DBI.  I'm using Postgres on Linux with Perl 5.8.
 
What I'm trying to do is this:  the script checks to see if a table exists in the database, and if it doesn't, it creates it.  It then carries the name of the table in a $variable for use with inserting, etc.  That's it.
 
Thanks.
 
 
--andrew:
 
--are you looking for just a list of tables, or, are you trying
--to do something with the tables (insert / update / copy / etc)?
--also, what database are you using and on what platform?
 
--you may end up installing and using a DBI::DBD module.
 
--i am running PostgreSQL on a Linux platform ... if i can help,
--just post again and i'll submit the few examples i have.
 
--laters!
 
-X
 
-----Original Message-----
From: Andrew Magnus [mailto:xanadian99@yahoo.com]
Sent: Tuesday, November 19, 2002 4:53 PM
To: pgsql-general@postgresql.org
Subject: [GENERAL] Getting a list of tables in a database with Perl

I would like to know how I can fetch a list of existing tables in a database within a Perl script.  Could someone please tell me how this can be done, or, at least, a good reference to look it up?  Thanks.



Do you Yahoo!?
Yahoo! Web Hosting - Let the expert host your site

Re: Getting a list of tables in a database with Perl

From
Jeffrey Melloy
Date:
If you want slightly less formatted output, you can pull some
relational database magic:
select c.relname as "Table" from pg_class c where c.relkind = 'r' and
c.relname !~ '^pg_';
will pull up a list of all user-created tables.

On Tuesday, November 19, 2002, at 04:06 PM, Medi Montaseri wrote:

> Try this from the command line....
>
> psql -c "\d"
>
> And if you want to bring this into a perl script, try
>
> perl -e '$list = `psql -c "\\d" `; print "$list\n";'
>
> A more readable version is
>
> $list = ` psql -c "\\d" `;
> print "$list \n";
>
> Or use DBI and go after pg_tables;
>
> Andrew Magnus wrote:
>
>> I would like to know how I can fetch a list of existing tables in a
>> database within a Perl script.  Could someone please tell me how this
>> can be done, or, at least, a good reference to look it up?  Thanks.
>>
>>
>> ----------------------------------------------------------------------
>> --
>> Do you Yahoo!?
>> Yahoo! Web Hosting
>> <http://rd.yahoo.com/hosting/mailsig/*http://webhosting.yahoo.com> -
>> Let the expert host your site
>
>
>
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly