Обсуждение: 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
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
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
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
+-----------------------------------------------------------------------+
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
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