PostgreSQLには通常のテーブルとは異なった、作成してからセッションが有効な間だけアクセスできる一時的なテーブルを作成できます。
一般的には「一時テーブル」や「テンポラリテーブル」などと呼ばれます。
一時テーブル(テンポラリーテーブル)はそのままコーディングすると複雑なSQLになる場合や、
データの一部を抜き出して加工した値を一時的にテーブルに保管して処理をする場合などに便利な機能です。
PostgreSQL の一時テーブル(テンポラリーテーブル)はセッション内のみ有効で、セッションが切断された時には自動でテーブルが削除され、不要なテーブルが残ってしまうこともありません。
また、他のセッションからは参照できないので、同じ一時テーブル名が存在しても、セッションが異なればエラーにならず、それぞれの処理で同じテーブル名が使えることになります。
(アプリケーションで管理するテーブル名の数を減らすことができます。)
PostgreSQLで一時テーブル(テンポラリーテーブル)を作成する
PostgreSQLで一時テーブル(テンポラリーテーブル)を作成するには CREATE TEMPORARY TABLE 文を使用します。
(TEMPORARY は TEMP でも OK です。)
構文は以下の通りです。
CREATE { TEMPORARY | TEMP } TABLE [作成するテーブル名]
(
[カラム名] [カラムの型]
・
・
・
)
サンプルに一時テーブル(テンポラリテーブル)を作成すると以下のようになります。
CREATE TEMPORARY TABLE temporary_table (
name varchar(20) unique
,age int
);
INSERT INTO temporary_table VALUES ('name1',10),('name2',20),('name3',30);
SELECT * FROM temporary_table ;
作成した一時テーブル(テンポラリテーブル)は同一セッション内では通常のテーブルとして扱えるので、特に意識をすることなくINSERTやUPDATE、DELETE、SELECTを行うことができます。
まとめ
PostgreSQLで一時テーブル(テンポラリテーブル)を作成して利用すると、複雑なSQLの簡略化に寄与したり、一時的に選択したデータをメモリ上に保存でき、そのデータを加工して利用することなどが可能になります。
セッション内のみで有効なテーブルなので、複数のプロセスで都度テーブル名を加工して作ったりする必要もなく、アプリケーションをすっきりさせることも可能になります。
セッションが破棄されるとテーブルも破棄されるため、データベースにずっと作成したテーブルが残ってしまうことも発生しません。
一時テーブル(テンポラリテーブル)は便利な機能なので、是非、使ってみてください。