SELECT .. INTO, aby utworzyć tabelę w PL / pgSQL
Chcę użyćSELECT INTO
zrobić tymczasowy stół w jednej z moich funkcji.SELECT INTO
działa w SQL, ale nie w PL / pgSQL.
Ta instrukcja tworzy tabelę o nazwie mytable (Iforig_table
istnieje jako relacja):
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
Ale umieść tę funkcję w PostgreSQL, a otrzymasz błąd: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;
mogęSELECT INTO
zmienna typurecord
w PL / pgSQL, ale muszę zdefiniować strukturę podczas pobierania danych z tego rekordu.SELECT INTO
jest naprawdę prosta - automatyczne tworzenie tabeli o tej samej strukturzeSELECT
pytanie. Czy ktoś ma jakieś wyjaśnienie, dlaczego to nie działa wewnątrz funkcji?
To wygląda jakSELECT INTO
działa inaczej w PL / pgSQL, ponieważ możesz wybrać zmienne, które zadeklarowałeś. Nie chcę jednak deklarować mojej tymczasowej struktury stołu. Chciałbym, aby po prostu utworzyć strukturę automatycznie, tak jak w SQL.