Postgres - создать временную таблицу с помощью SELECT и ON COMMIT DROP - PullRequest
0 голосов
/ 18 сентября 2018

В 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 голосов
/ 18 сентября 2018

Вы должны быть в транзакции, в противном случае каждый отдельный запрос выполняется в своей собственной транзакции.

BEGIN; -- start transaction

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

select * from t5;

COMMIT; -- drops the temp table
...