[pgsql-jp: 27392] Re: 一時テーブルの有無を調べる方法は?

SAKANAKA Tatsumi sakanaka @ tokyo-gas.co.jp
2002年 9月 12日 (木) 13:42:15 JST


さかなかです。高田さん、ありがとうございます。

On Thu, 12 Sep 2002 13:09:52 +0900
In the message "[pgsql-jp: 27391] Re: 一時テーブルの有無を調べる方法は?"
       <20020912040952.GA1481%takada @ rh.xdsl.ne.jp>
       Hiroki Takada <takada @ rh.xdsl.ne.jp> さん wrote:

> 複数のプロセスがその処理を同時に行うのでしょうか?

これはありません。ですので、

> バックエンドとの接続を毎回行うという前堤(複数のプロセス
> で接続を使いまわししないという前堤)であれば,

と言う前提なのですが...

> CREATE LOCAL TEMP TABLE テーブル名;

これを、同一セッションで(テーブル名を変えずに)複数回やると、二
回目以降はエラーになりますよね。関数内で 'CREATE ...' したいので
二回以上 CREATE しないように「一度作った一時テーブルの有無の判定」
をしたいのです。

# 関数を呼んだときに、暗黙裡にエラーなく必要な一時テーブルを作る
# ようにしたいというのがおおもとです。セッションに局所的な永続テー
# ブル(形容矛盾ですが)が出来れば(爆)。

セッション開始時に「明示的に」セッションにローカルな一時テーブル
をつくるようにして、関数内部からは create table しない、という方
が、やはり、筋がいいんでしょうねぇ。

その方向で考えます。ありがとうございました。

# psql でやってる分にはいいけど、php とかでやるときには一時テー
# ブル作るのを忘れそうです(笑)。

--さかなか@「お約束」は少なければ少ない方がいいんだけど



pgsql-jp メーリングリストの案内