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
私がここで犯している間違いが何であるかを理解する上で何が悪いのか教えてください。
ありがとう
トランザクションに参加する必要があります。そうしないと、すべてのクエリが独自のトランザクションで実行されます。
BEGIN; -- start transaction
CREATE TEMPORARY TABLE t5 ON COMMIT DROP AS select * from test4;
select * from t5;
COMMIT; -- drops the temp table