SELECT .. INTO para crear una tabla en PL / pgSQL
Quiero usarSELECT INTO
Para hacer una tabla temporal en una de mis funciones.SELECT INTO
Funciona en SQL pero no en PL / pgSQL.
Esta declaración crea una tabla llamada mytable (siorig_table
existe como una relación):
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
Pero ponga esta función en PostgreSQL, y obtendrá el error: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;
puedoSELECT INTO
una variable de tiporecord
dentro de PL / pgSQL, pero luego tengo que definir la estructura al obtener datos de ese registro.SELECT INTO
es realmente simple: crear automáticamente una tabla de la misma estructura de laSELECT
consulta. ¿Alguien tiene alguna explicación de por qué esto no funciona dentro de una función?
Parece queSELECT INTO
Funciona de manera diferente en PL / pgSQL, porque puede seleccionar las variables que ha declarado. Sin embargo, no quiero declarar mi estructura de tabla temporal. Me gustaría que solo creara la estructura automáticamente como lo hace en SQL.