../../image/benilogo.gifPostgreSQL について


PostgreSQL のテーブル構造情報を得る。
既存のテーブル構造を調べるにはどうすればいいのでしょうか?

こんなので 構造情報を取得することが出来るようです。
select \d bhnmst;
beniya-# select \d  bhnmst;
                 Table "bhnmst"
   Column   |          Type          | Modifiers
------------+------------------------+-----------
 bhn_code   | character(10)          | not null
 bhn_name   | character varying(50)  |
 bhn_yomi   | character varying(100) |
 bhn_bunrui | character(2)           |
 bhn_keijou | character(2)           |
 bhn_wide   | numeric(5,2)           |
Primary key: bhnmst_pkey


   こんなふうにテーブル構造を取得出来るようです。


このとき SQL は どんなのが発行されているのか を調べてみよう。
以下のクエリーが発行されているようです。
beniya=# select \d bhnmst;
********* QUERY **********
SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules
FROM pg_class WHERE relname='bhnmst'
**************************

********* QUERY **********
SELECT a.attname, format_type(a.atttypid, a.atttypmod), a.attnotnull, a.atthasdef, a.attnum
FROM pg_class c, pg_attribute a
WHERE c.relname = 'bhnmst'
  AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum
**************************

********* QUERY **********
SELECT c2.relname
FROM pg_class c, pg_class c2, pg_index i
WHERE c.relname = 'bhnmst' AND c.oid = i.indrelid AND i.indexrelid = c2.oid
AND NOT i.indisunique ORDER BY c2.relname
**************************

********* QUERY **********
SELECT c2.relname
FROM pg_class c, pg_class c2, pg_index i
WHERE c.relname = 'bhnmst' AND c.oid = i.indrelid AND i.indexrelid = c2.oid
AND i.indisprimary AND i.indisunique ORDER BY c2.relname
**************************

********* QUERY **********
SELECT c2.relname
FROM pg_class c, pg_class c2, pg_index i
WHERE c.relname = 'bhnmst' AND c.oid = i.indrelid AND i.indexrelid = c2.oid
AND NOT i.indisprimary AND i.indisunique ORDER BY c2.relname
**************************



  このクエリー単独だと何が
  出来ているのでしょうか? 
  クエリー1 とする。 




  クエリー2 






  クエリー3





  クエリー4





  クエリー5





























目次に戻る

2004/12/18 restart ********* Last Update 2006/05/29 16:58 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから