Postgres-使用SELECT和ON COMMIT DROP创建临时表

时间:2018-09-18 10:20:06

标签: postgresql temp-tables

在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

请让我知道我的错在哪里,我在这里犯了什么错误。

谢谢

1 个答案:

答案 0 :(得分:4)

您需要进行交易,否则每个查询都将在其自己的交易中执行。

BEGIN; -- start transaction

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

select * from t5;

COMMIT; -- drops the temp table