- - PR -
PostgreSQLにおけるテーブルのフィールド情報取得方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-09-05 16:00
PostgreSQL初心者です。
ASP(VB).NET+PostgreSQL にてWebシステムを開発しています。 データベース内の各テーブルのフィールド毎の「桁数」や「データ型」を参照し 可変で処理を実行したいと思います。(DataGridは使用しません) 過去記事を探したら、SQLserverの場合の情報は見つけることが出来ましたが、 PostgreSQLにおけるテーブルのフィールド情報や型情報を取得するクエリーが 分かりませんでした。 その後もいろいろ手探りで試してみたのですが行き詰まってしまいました。 どなたか方法をご存知でしたら教えていただけませんでしょうか。 ・SQLServer2000におけるテーブルデザインからの定義ファイル作成について http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13452&forum=26&5 |
|
投稿日時: 2005-09-05 16:08
PostgreSQLはインストールしただけで使ったことないですが。
ヘルプ読んだほうがはやいかと。 http://www.postgresql.jp/document/pg803doc/html/catalogs.html |
|
投稿日時: 2005-09-05 16:11
\d <table name>
で得られる情報をプログラムで取得したいってことでいいですよね? psql -E <database name> でDBに接続して、\d <table name> を実行してみて下さい。 裏側で発行されたSQL文が表示されるので、これを参考とすることができます。 |
|
投稿日時: 2005-09-05 16:19
pg_attributeシステムカタログあたりを見ると幸せになれるかも..
http://www.postgresql.jp/document/pg803doc/html/catalog-pg-attribute.html [ メッセージ編集済み 編集者: ハツキタツミ 編集日時 2005-09-05 16:22 ] |
|
投稿日時: 2005-09-05 17:03
burton999さん。アドバイス有難うございます。確かにヘルプを先に調べるべきでした。
カーニーさん。psqlを使用してやってみましたが、"裏側で発行されたSQL文"というのが よく分かりませんでした。 今回はASP(VB).NETからクエリーを投げて情報を取り出そうとしています。 PostgreSQLに関しては初心者なので、具体的な対応が分からないので "あたふた"しています。 もう少し詳しくご教授いただければ幸いです。 ハツキタツミさん。システムカタログpg_attributeを見てみましたが、実際に クエリーを作成して試してみます。 皆さんアドバイス有難うございました。 少し糸口が見えてきたような気がします。 解決しましたら結果をUPさせていただきます。 有難うございました。 |
|
投稿日時: 2005-09-05 21:22
自己レスです。
何とか以下のクエリーで対応が出来ました。 SELECT pg_class.relname, pg_attribute.attname, pg_attribute.atttypmod, pg_attribute.attnum, pg_attribute.attalign, pg_attribute.attnotnull, pg_type.typname FROM pg_class, pg_attribute, pg_type WHERE pg_class.oid = pg_attribute.attrelid and pg_attribute.atttypid = pg_type.oid and pg_class.relname='テーブル名称' and pg_attribute.attnum > 0 ORDER BY pg_attribute.attnum; ヒントを与えてくださった皆様、本当に有難うございました。 |
1