PostgreSQLで一時テーブルを作成する方法

記事内に広告が含まれています。

PostgreSQL の一時テーブルは作成してからセッションが有効な間だけアクセスできるテーブルです。

複雑な SQL になったり、データの一部を抜き出して加工した値を一時的にテーブルに保管して処理をする際などに便利な機能です。

PostgreSQL の一時テーブルはセッション内のみ有効なので、セッションが切断された時には自動でテーブルが削除されるので、不要なテーブルが残ってしまうこともありません。

また、他のセッションからも見れないので、同じ一時テーブル名が存在しても、セッションが異なればエラーにならず、それぞれの処理で同じテーブル名が使えることになります。
(アプリケーションで管理するテーブル名の数を減らすことができます。)

PostgreSQLで一時テーブルを作成する

PostgreSQL で一時テーブルを作成するには CREATE TEMPORARY TABLE 文を使用します。
(TEMPORARY は TEMP でも OK です。)

CREATE { TEMPORARY | TEMP } TABLE [作成するテーブル名]
(
    [カラム名] [カラムの型]
              ・
              ・
              ・
)

実際には

CREATE TEMPORARY TABLE tmp_table (
   name varchar(20) unique
  ,age  int
);
INSERT INTO tmp_table VALUES ('name1', 10),('name2',20);
select * from tmp_table;

のように使います。

当然、同一セッション内で同じ名前の一時テーブルを作成しにくと

ERROR:  リレーション"tmp_table"はすでに存在します
SQL 状態: 42P07

と、エラーになります。

タイトルとURLをコピーしました