Создание временной таблицы в postgresql со случайным именем - PullRequest
0 голосов
/ 10 июля 2020

Я использую эту команду для создания временной таблицы из оператора Select

Create TEMP Table myTable As Select * From Table1 

Я не знаю, как сделать то же самое, но назначая случайное имя вместо «myTable» У меня есть функция которые создают случайную строку, и я могу присвоить значение переменной, но как я могу использовать эту переменную в качестве имени моей новой временной таблицы?

Спасибо

1 Ответ

0 голосов
/ 10 июля 2020

Вы можете использовать динамику c SQL. Для этого код должен быть частью функции или внутри блока do:

do $$
begin
EXECUTE format('Create TEMP Table %s As Select * From Table1',(select get_random_name()));
end $$;

Конечно, вы обязаны записать имя временной таблицы, чтобы вы могли запросить его позже ...

При этом отметим, что do c упоминает

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

, поэтому, возможно, вы можете просто использовать одно и то же имя все время, поскольку другие клиенты (транзакция) не будут видеть временные таблицы, созданные другими клиентами (транзакция)

...