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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage