[PHP-users 561] Re: PostgreSQLのテーブル一覧の取得

Naofumi Kondoh php-users@php.gr.jp
Thu, 05 Jul 2001 16:02:43 +0900


ソフト工房 の 近藤 です。

seiji wrote:
> 
> こんにちわ、桝形と申します。
> 
> 現在PHP(Apache版)からPostgreSQLにアクセスして
> テーブル一覧の取得を試みているのですが上手くいきません。
....略.....

テーブル名と VIEW 名 だけならば、次の SQL。

SELECT  pg_class.relname FROM pg_class
               WHERE  pg_class.relkind = 'r';

但し、pg_class が、読めるようになっていること。
Web User が、nobody ならば、権限のあるユーザー
が、GRANT しておくことです。

GRANT SELECT ON pg_class TO nobody;

pg_ ではじまる DBカタログ(メタデーター)は、
汎用的な処理に有用です。PostgreSQL のマニュアル
にも詳しく載っています。

(参考)

SELECT * FROM pg_tables;  

でも、表情報がえられます。pg_tables は、VIEW で、

SELECT * FROM  pg_views WHERE viewname = 'pg_tables' ;

で、どういう定義になっているかわかります。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文   Email:  nkon@shonan.ne.jp 
           PostgreSQL 汎用DB検索ツール デモ  
      http://www.softkoubou.co.jp/cslweb/index.php3
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/