Re: Retrieving a list of tables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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@xxxxxxxxxxxxxxxxx
 Tieffe Sistemi s.r.l.                             www.tieffesistemi.com
 V.le Piceno 21 - 20129 Milano - Italia          tel/fax +39 02 76115215
+-----------------------------------------------------------------------+


[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux