Thread: 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