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

Mashiki mashiki @ yanah.com
2002年 9月 12日 (木) 14:13:48 JST


 Mashikiです。


>PL/pgSQL の関数内で「テーブルの有無を調べて、なければ CREATE す
>る」という処理をやりたく思っています。できれば一時テーブルで。
>
>永続テーブルなら pg_tables を調べればいいのですが、一時テーブル
>の有無を判定する方法が分かりません。
>
>たとえば 'CREATE TEMPORARY TABLE temp' すると pg_tables には
>tablename が 'temp' であるような行はできません(pg_temp_???? な
>のかな?)。

みたいですね。名前を???に変える対応表がどこかにありそうなものですが、
「PostgreSQL 7.2.1 開発者ガイド Chapter 3. システムカタログ」
をあさってみても、公開されているカタログにそれらしいのがないですね。

CREATE TEMPORARY TABLE xxx; と
COMMENT ON TABLE xxx IS 'TEMP:xxx';

をセットでテーブルを作るようにして
pg_descriptionを探すようにしてはどうでしょうか。


# select * from pg_stat_user_tables;
# select * from pg_statio_user_tables;
# では「temp」って現れてくるんだけど公開されてないですね




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