web-dev-qa-db-ja.com

Postgres-SELECTおよびONCOMMITDROPを使用して一時テーブルを作成します

Postgres(9.4)で、selectから一時テーブルを作成し、「コミットドロップ時」を同じテーブルに適用しようとしています。以下の構文を使用しています。

CREATE TEMPORARY TABLE t5 ON COMMIT DROP AS select * from test4

それはメッセージを与えます

Query returned successfully: 5 rows affected, 62 ms execution time.

しかし、同じテーブルをクエリすると、

select * from t5

エラーをスローします、

ERROR:  relation "t5" does not exist
LINE 1: select * from t5
                      ^
********** Error **********

ERROR: relation "t5" does not exist
SQL state: 42P01
Character: 15

私がここで犯している間違いが何であるかを理解する上で何が悪いのか教えてください。

ありがとう

3
usersam

トランザクションに参加する必要があります。そうしないと、すべてのクエリが独自のトランザクションで実行されます。

BEGIN; -- start transaction

CREATE TEMPORARY TABLE t5 ON COMMIT DROP AS select * from test4;

select * from t5;

COMMIT; -- drops the temp table
7
Eelke