質問 |
||
| QNo.3005397 | PostgreSQLのテーブル構造を取得したい | |
|---|---|---|
| 質問者:from2001 |
現在PostgreSQLとPHP5を利用してアプリケーションを開発しております。 PHPにて現在すでに存在するPostgreSQLのテーブルの定義情報を取得するにはどうすればよろしいでしょうか。テーブルの定義情報は下記のようにSQLのCREATE文で取得したいと思っております。 CREATE TABLE favorite ( code serial NOT NULL, reg_date timestamp without time zone NOT NULL DEFAULT now(), update_date timestamp without time zone, title text, url text, u_id character varying(20) NOT NULL, enabled_flag smallint NOT NULL DEFAULT 1, CONSTRAINT web_favorite_pkey PRIMARY KEY (fv_code) ) 何卒よろしくお願いいたします。 |
|
困り度:
|
||
| 質問投稿日時: 07/05/16 19:08 |
||
回答 |
|
| ANo.3 | PgAdminIIIでしたら、C++のソースがありますので確認できます。 http://www.postgresql.org/ftp/pgadmin3/release/v1.6.3/src/ から、 pgadmin3-1.6.3.tar.gz を落としてこれます。 pgadmin3-1.6.3/src/dlg/dlgTable.cpp あたりでしょうか? 地道にテーブルやカラム、制約などの情報をそれぞれ取得してきて、プログラムで、CREATE文を整形していますね。 |
|---|---|
| 回答者:copymaster | |
| 種類:回答 どんな人:経験者 自信:参考意見 |
|
| 回答日時: 07/05/23 01:50 |
|
| |
| この回答へのお礼 | ありがとうございます。 CREATE文を直接取得せずに、情報から生成しているんですね。 残念ながら私はCは詳しくないのですが参考になりました。 ありがとうございます。 |
回答良回答20pt |
|
| ANo.2 | よく質問を読みましたら、「PHPで」ということですね。大変失礼致しました。 (1)pg_meta_data関数を使うか、PostgreSQLのシステムカタログを直接 参照するかでクエリを返し、PHPでSQL文の形に整形する。 (2)pg_dumpのバッチファイルを作っておいて、 system()とかで実行し、できたファイルをPHPで読み込む。 くらいしか思いつきません。 |
|---|---|
| 回答者:copymaster | |
| 種類:回答 どんな人:経験者 自信:参考意見 |
|
| 回答日時: 07/05/18 02:13 |
|
| |
| この回答への補足 | なるほど、ありがとうございます。 pg_dump XXXXXXX -t web_blog -s > /tmp/dump.sql で無事テーブル構造を出力することができました。 私はpg_adminというwindowsのPostgreSQL管理ソフトを使っているのですが、テーブルの情報表示のところにcreate文でテーブル構造が表示されます。 ですので、PostgreSQLの機能でテーブルの構造をcreate文で出力する機能が実装されているのではないかと思っているのですが、何か、ご存知のことがあれば教えていただければ幸いです。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.1 | 以下に回答があります。 http://oshiete1.goo.ne.jp/qa1891929.html |
|---|---|
| 回答者:copymaster | |
| 種類:回答 どんな人:経験者 自信:参考意見 |
|
| 回答日時: 07/05/17 13:47 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |