現在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)
)
何卒よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
よく質問を読みましたら、「PHPで」ということですね。
大変失礼致しました。(1)pg_meta_data関数を使うか、PostgreSQLのシステムカタログを直接
参照するかでクエリを返し、PHPでSQL文の形に整形する。
(2)pg_dumpのバッチファイルを作っておいて、
system()とかで実行し、できたファイルをPHPで読み込む。
くらいしか思いつきません。
この回答への補足
なるほど、ありがとうございます。
pg_dump XXXXXXX -t web_blog -s > /tmp/dump.sql
で無事テーブル構造を出力することができました。
私はpg_adminというwindowsのPostgreSQL管理ソフトを使っているのですが、テーブルの情報表示のところにcreate文でテーブル構造が表示されます。
ですので、PostgreSQLの機能でテーブルの構造をcreate文で出力する機能が実装されているのではないかと思っているのですが、何か、ご存知のことがあれば教えていただければ幸いです。
No.3
- 回答日時:
PgAdminIIIでしたら、C++のソースがありますので確認できます。
http://www.postgresql.org/ftp/pgadmin3/release/v …
から、
pgadmin3-1.6.3.tar.gz
を落としてこれます。
pgadmin3-1.6.3/src/dlg/dlgTable.cpp あたりでしょうか?
地道にテーブルやカラム、制約などの情報をそれぞれ取得してきて、プログラムで、CREATE文を整形していますね。
ありがとうございます。
CREATE文を直接取得せずに、情報から生成しているんですね。
残念ながら私はCは詳しくないのですが参考になりました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL MYSQL エラー 2 2022/10/18 11:37
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- PHP php エラー 2 2022/10/23 16:43
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PostgreSQLで外部DB内のテーブ...
-
照合順序の変更について
-
SQLManagementStudioのフィルタ
-
SQLServerでテーブルの列数を求...
-
SQLサーバーとMySQLの大きな違...
-
【PostgreSQL】行の値の並びを...
-
「マスタ」と「テーブル」の違...
-
ACCESSのSQLで、NULLかNULLでな...
-
2つのテーブルから条件に一致...
-
3つ以上のテーブルをUNIONする...
-
重複するキーから一番古い年月...
-
[ BETWEEN ] vs [ >= AND <= ]
-
ACCESS 一番最新の日付の金額...
-
ACCESS2007 フォーム 「バリア...
-
Access VBA Me.Requery レコー...
-
accessテーブル作成クエリを実...
-
accessのロック
-
ManagementStudioからのデータ削除
-
Accessのリンクテーブルについて
-
オラクルではできるのにSQLSERV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PostgreSQLで外部DB内のテーブ...
-
SQLServerでテーブルの列数を求...
-
【PostgreSQL】行の値の並びを...
-
主キーの取得
-
SQLManagementStudioのフィルタ
-
[PostgreSQL]別DBのテーブルのS...
-
SQLサーバーとMySQLの大きな違...
-
システムテーブルについての疑問
-
照合順序の変更について
-
「マスタ」と「テーブル」の違...
-
[ BETWEEN ] vs [ >= AND <= ]
-
2つのテーブルから条件に一致...
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
SELECT時の行ロックの必要性に...
-
3つ以上のテーブルをUNIONする...
-
SELECT文でのデッドロックに対...
-
2つの項目が重複するレコード...
-
Access VBA [リモートサーバー...
-
数百万件レコードのdelete
おすすめ情報