人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Postgresqlについて。

テーブルAを作るときに、既にあったら、DROPしてからCREATE、なかったら、そのままCREATEしたいと思いますが、どうすればいいのでしょうか?
MYSQLのIF EXISTSのようなものはないのでしょうか?

●質問者: iiiiiiiii
●カテゴリ:ウェブ制作
✍キーワード:MySQL postgreSQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● heilig_zwei
●25ポイント

このあたりが参考になるかと思われます。

http://ns1.php.gr.jp/php-jp/archives/msg09478.html

http://ml.postgresql.jp/pipermail/pgsql-jp/2003-July/013947.html

つまりselect文でテーブルが存在するかどうか調べた後、

if文で分岐するようです。

◎質問者からの返答

ストアドはちょっと避けたいですね。

ありがとうございます。


2 ● Mook
●45ポイント

無条件に、削除・作成をするのであれば、

DROP TABALE a;

CREATE TABLE a VALUES ( .... );

としてしまってはだめですか?


あるいは処理を実行する側で、テーブルがあるかどうかを判断して処理をするといった方法もあります。

例えば、PHP なら

$res = pg_query( $conn, "SELECT CASE COUNT(*) AS result FROM pg_tables WHERE tablename='a'" );

$row = pg_fetch_array( $res, 0, PGSQL_ASSOC );

if ( $row["result"] == 1 ) {

$res = pg_query( $conn, "DROP TABLE a" );

}

$res = pg_query( $conn, "CREATE TABLE a VALUES (....)" );

のような感じになるでしょうか。

◎質問者からの返答

ありがとうございます。

この方法で行きます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ