Getting a list of tables in a database with Perl

Started by Andrew Magnusover 23 years ago4 messagesgeneral
Jump to latest
#1Andrew Magnus
xanadian99@yahoo.com

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

#2Medi Montaseri
medi.montaseri@intransa.com
In reply to: Andrew Magnus (#1)
Re: Getting a list of tables in a database with Perl

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:

Show quoted text

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&gt; -
Let the expert host your site

#3Andrew Magnus
xanadian99@yahoo.com
In reply to: Medi Montaseri (#2)
Re: Getting a list of tables in a database with Perl

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

#4Jeffrey Melloy
jmelloy@visualdistortion.org
In reply to: Medi Montaseri (#2)
Re: Getting a list of tables in a database with Perl

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:

Show quoted text

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&gt; -
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