Обсуждение: Retrieving a list of tables

Поиск
Список
Период
Сортировка

Retrieving a list of tables

От
"David C. Brown"
Дата:
Heyas,

    I need to be able to get a list of the tables from a postgresql from
php.  I'm
porting a php-mysql website over to postgresql.    I have a form that
populates
a <SELECT> statment with the tables in the db.

In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
support that sql statment, and pg-php doesn't like me sending a "\d" as
a
query.

Anyone have any help, or ideas how I may be able to work around this?
or is there a query for pg-sql that I don't know about?

Any and all help would be great...  Thanx

Dave


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Re: Retrieving a list of tables

От
Дата:
On Tue, 16 Oct 2001, David C. Brown wrote:

> Heyas,
>
>     I need to be able to get a list of the tables from a postgresql from
> php.  I'm
> porting a php-mysql website over to postgresql.    I have a form that
> populates
> a <SELECT> statment with the tables in the db.
>
> In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
> support that sql statment, and pg-php doesn't like me sending a "\d" as
> a
> query.
>
> Anyone have any help, or ideas how I may be able to work around this?
> or is there a query for pg-sql that I don't know about?
>
> Any and all help would be great...  Thanx
>
> Dave
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

  Hey ,....


      If you want to know the list of tables in a certain database,
  you can query the pg_table table.

      select * from pg_tables where tableowner = 'ME';

      Its not really a table but a view, it contains all the tables in a
database where you connected including the system tables of postgres so be
sure to filter your query.

      Let me know if this was what you need ....


                                                Erle Czar S. Mantos
                                          erle@hindang.msuiit.edu.ph

                                      ---------- MARTIANS LAIR ---------


---------------------------(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




Re: Retrieving a list of tables

От
"Duncan Adams (DNS)"
Дата:
select * from pg_tables where tablename not like 'pg_%'

-----Original Message-----
From: David C. Brown [mailto:dbrown@centennialwines.com]
Sent: Tuesday, October 16, 2001 10:09 PM
To: pgsql-php@postgresql.org
Subject: [PHP] Retrieving a list of tables


Heyas,

    I need to be able to get a list of the tables from a postgresql from
php.  I'm
porting a php-mysql website over to postgresql.    I have a form that
populates
a <SELECT> statment with the tables in the db.

In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
support that sql statment, and pg-php doesn't like me sending a "\d" as
a
query.

Anyone have any help, or ideas how I may be able to work around this?
or is there a query for pg-sql that I don't know about?

Any and all help would be great...  Thanx

Dave


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Re: Retrieving a list of tables

От
Alessandro Ferrarin
Дата:
On Tue, Oct 16, 2001 at 03:09:13PM -0500, David C. Brown wrote:
> Heyas,
>
>     I need to be able to get a list of the tables from a postgresql from
> php.  I'm
> porting a php-mysql website over to postgresql.    I have a form that
> populates
> a <SELECT> statment with the tables in the db.
>
> In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
> support that sql statment, and pg-php doesn't like me sending a "\d" as
> a
> query.
>
> Anyone have any help, or ideas how I may be able to work around this?
> or is there a query for pg-sql that I don't know about?
>
> Any and all help would be great...  Thanx
>
> Dave

The right way to get that (with Owner and Encoding type), is querying:

    SELECT pg_database.datname as "Database",
           pg_user.usename as "Owner",
           pg_encoding_to_char(pg_database.encoding) as "Encoding"FROM pg_database, pg_user
    WHERE pg_database.datdba = pg_user.usesysid

    UNION

    SELECT pg_database.datname as "Database",
           NULL as "Owner",
           pg_encoding_to_char(pg_database.encoding) as "Encoding"FROM pg_database
    WHERE pg_database.datdba NOT IN (SELECT usesysid FROM pg_user)
    ORDER BY "Database";

Postgres uses some "internal" tables to store data. You can query them as
you want just for reading (I suppose).
If you start the terminal-based front-end psql like this

    psql -E

you obtain: (from man page):
       -E, --echo-hidden
              Echoes the actual queries generated by \d and other backslash com-
              mands.  You can use this if you wish to include similar  function-
              ality  into  your  own programs. This is equivalent to setting the
              variable ECHO_HIDDEN from within psql.

Try it.

    Bye - Alessandro

P.S. I encountered the problem you ask making a php-pgsql-browser...
--
+-----------------------------------------------------------------------+
 Alessandro Ferrarin                          ferrarin@tieffesistemi.com
 Tieffe Sistemi s.r.l.                             www.tieffesistemi.com
 V.le Piceno 21 - 20129 Milano - Italia          tel/fax +39 02 76115215
+-----------------------------------------------------------------------+

Re: Retrieving a list of tables

От
"Papp Gyozo"
Дата:
If you runs psql with -E option, then psql reveals the SQL equivalent of its
magical metacommands starting with a backslash ie.: \dv \d and so on. Use
those queries !

<manual src="app-psql.html">
-E, --echo-hidden
Echoes the actual queries generated by \d and other backslash commands. You
can use this if you wish to include similar functionality into your own
programs. This is equivalent to setting the variable ECHO_HIDDEN from within
psql.
</manual>

----- Original Message -----
From: <erle@hindang.msuiit.edu.ph>
To: "David C. Brown" <dbrown@centennialwines.com>
Cc: <pgsql-php@postgresql.org>
Sent: Wednesday, October 17, 2001 10:59 PM
Subject: Re: [PHP] Retrieving a list of tables


> On Tue, 16 Oct 2001, David C. Brown wrote:
>
> > Heyas,
> >
> >     I need to be able to get a list of the tables from a postgresql from
> > php.  I'm
> > porting a php-mysql website over to postgresql.    I have a form that
> > populates
> > a <SELECT> statment with the tables in the db.
> >
> > In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
> > support that sql statment, and pg-php doesn't like me sending a "\d" as
> > a
> > query.
> >
> > Anyone have any help, or ideas how I may be able to work around this?
> > or is there a query for pg-sql that I don't know about?
> >
> > Any and all help would be great...  Thanx
> >
> > Dave
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
> >
>
>   Hey ,....
>
>
>       If you want to know the list of tables in a certain database,
>   you can query the pg_table table.
>
>       select * from pg_tables where tableowner = 'ME';
>
>       Its not really a table but a view, it contains all the tables in a
> database where you connected including the system tables of postgres so be
> sure to filter your query.
>
>       Let me know if this was what you need ....
>
>
>                                                 Erle Czar S. Mantos
>                                           erle@hindang.msuiit.edu.ph
>
>                                       ---------- MARTIANS LAIR ---------
>
>
> ---------------------------(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



Re: Retrieving a list of tables

От
Дата:
On Tue, 16 Oct 2001, David C. Brown wrote:

> Heyas,
>
>     I need to be able to get a list of the tables from a postgresql from
> php.  I'm
> porting a php-mysql website over to postgresql.    I have a form that
> populates
> a <SELECT> statment with the tables in the db.
>
> In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
> support that sql statment, and pg-php doesn't like me sending a "\d" as
> a
> query.
>
> Anyone have any help, or ideas how I may be able to work around this?
> or is there a query for pg-sql that I don't know about?
>
> Any and all help would be great...  Thanx
>
> Dave
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

  Hey ,....


      If you want to know the list of tables in a certain database,
  you can query the pg_table table.

      select * from pg_tables where tableowner = 'ME';

      Its not really a table but a view, it contains all the tables in a
database where you connected including the system tables of postgres so be
sure to filter your query.

      Let me know if this was what you need ....


                                                Erle Czar S. Mantos
                                          erle@hindang.msuiit.edu.ph

                                      ---------- MARTIANS LAIR ---------


---------------------------(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