在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
请让我知道我的错在哪里,我在这里犯了什么错误。
谢谢
答案 0 :(得分:4)
您需要进行交易,否则每个查询都将在其自己的交易中执行。
BEGIN; -- start transaction
CREATE TEMPORARY TABLE t5 ON COMMIT DROP AS select * from test4;
select * from t5;
COMMIT; -- drops the temp table