SELECT .. INTO, um eine Tabelle in PL / pgSQL zu erstellen
Ich möchte benutzenSELECT INTO
eine temporäre Tabelle in einer meiner Funktionen zu machen.SELECT INTO
funktioniert in SQL aber nicht in PL / pgSQL.
Diese Anweisung erstellt eine Tabelle mit dem Namen mytable (Iforig_table
existiert als Beziehung):
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
Wenn Sie diese Funktion jedoch in PostgreSQL einfügen, erhalten Sie den Fehler: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;
ich kannSELECT INTO
eine Variable vom Typrecord
in PL / pgSQL, aber dann muss ich die Struktur definieren, wenn Daten aus diesem Datensatz abgerufen werden.SELECT INTO
ist ganz einfach - es wird automatisch eine Tabelle mit der gleichen Struktur erstelltSELECT
Abfrage. Hat jemand eine Erklärung dafür, warum dies in einer Funktion nicht funktioniert?
Wie es scheintSELECT INTO
Funktioniert in PL / pgSQL anders, da Sie in den von Ihnen deklarierten Variablen auswählen können. Ich möchte meine temporäre Tabellenstruktur jedoch nicht deklarieren. Ich wünschte, es würde einfach die Struktur automatisch wie in SQL erstellen.