SELECT .. INTO para criar uma tabela em PL / pgSQL
Eu quero usarSELECT INTO
fazer uma tabela temporária em uma das minhas funções.SELECT INTO
funciona em SQL, mas não em PL / pgSQL.
Esta declaração cria uma tabela chamada mytable (seorig_table
existe como uma relação):
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
Mas coloque essa função no PostgreSQL e você receberá o erro:ERROR: "temp" is not a known variable
CREATE OR REPLACE FUNCTION whatever()
RETURNS void AS $
BEGIN
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
END; $ LANGUAGE plpgsql;
eu possoSELECT INTO
uma variável do tiporecord
dentro do PL / pgSQL, mas depois eu tenho que definir a estrutura quando obtenho dados daquele registro.SELECT INTO
é realmente simples - criando automaticamente uma tabela da mesma estrutura doSELECT
inquerir. Alguém tem alguma explicação sobre por que isso não funciona dentro de uma função?
Parece queSELECT INTO
funciona de forma diferente em PL / pgSQL, porque você pode selecionar as variáveis que você declarou. Eu não quero declarar minha estrutura de tabela temporária, no entanto. Eu gostaria que apenas criassem a estrutura automaticamente como no SQL.