ページの先頭行へ戻る
Symfoware Server V12.0.0 アプリケーション開発ガイド
FUJITSU Software

A.2 一時テーブルを使用する場合の注意事項

標準SQLでは、あらかじめ一時テーブルを定義しておくことで、アプリケーションがデータベースに接続した際に、自動的に空の一時テーブルを作成します。しかし、Symfoware Serverでは、アプリケーションがデータベースに接続した際に、明示的にCREATE TABLE文を使用して一時テーブルを作成する必要があります。

同一セッションで同じ一時テーブルの作成と削除を繰り返すと、システムテーブルの膨張や使用メモリ量の増加につながることがあります。これを防ぐために、一度作成した一時テーブルを再利用するようにCREATE TABLE文を記述します。

たとえば、繰り返し実行する各トランザクションで、一時テーブルを作成・削除するような場合には、次のようにCREATE TABLE文を記述します。

参照

CREATE TABLE文の詳細は、“PostgreSQL文書”の“リファレンス”の“SQLコマンド”を参照してください。

一時テーブルを使用したSQLの例を以下に示します。

悪い例(一時テーブルを作成・削除する例)
BEGIN;
CREATE TEMPORARY TABLE mytable(col1 CHAR(4), col2 INTEGER) ON COMMIT DROP;
 ・・・  mytableに対する処理

COMMIT;
良い例(一時テーブルを再利用する例)
BEGIN;
CREATE TEMPORARY TABLE IF NOT EXISTS mytable(col1 CHAR(4), col2 INTEGER) ON COMMIT DELETE ROWS;
・・・  mytableに対する処理

COMMIT;