Erstellen virtueller Tabellen mit Setof-Record in PostgreSQL
Dieser Artikel befasst sich mit der Erstellung virtueller Tabellen mit dem Setof-Record-Ansatz in PostgreSQL. Eine virtuelle Tabelle verfügt nicht über einen eigenen zugrunde liegenden Datenspeicher. Stattdessen handelt es sich um eine temporäre Datendarstellung, die auf übergebenen Parametern oder Berechnungen basiert.
Um eine virtuelle Tabelle zu erstellen, die drei Spalten und eine unbekannte Anzahl von Zeilen zurückgibt, verwenden Sie die folgende PL/pgSQL-Funktion:
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ BEGIN RETURN QUERY VALUES (1,2,3) , (3,4,5) , (3,4,5) ; END $func$ LANGUAGE plpgsql IMMUTABLE ROWS 3;
Diese Funktion verwendet die RETURNS TABLE-Klausel, um den von der Funktion zurückgegebenen Zeilentyp zu definieren. Der Befehl RETURN QUERY generiert mehrere Zeilen mithilfe eines VALUES-Ausdrucks. Die IMMUTABLE- und ROWS 3-Klauseln optimieren die Leistung der Funktion.
Um die virtuelle Tabelle aufzurufen, rufen Sie einfach die Funktion auf:
SELECT * FROM f_foo();
Zusätzlich können Sie virtuelle Tabellen mithilfe einer einfachen SQL-Anweisung erstellen :
VALUES (1,2,3), (3,4,5), (3,4,5)
Für komplexere Fälle definieren Sie Spaltennamen und Typen:
SELECT * FROM ( VALUES (1::int, 2::int, 3::int) , (3, 4, 5) , (3, 4, 5) ) AS t(a, b, c);
Abschließend kapseln Sie die Erstellung virtueller Tabellen in eine SQL-Funktion:
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ VALUES (1, 2, 3) , (3, 4, 5) , (3, 4, 5); $func$ LANGUAGE sql IMMUTABLE ROWS 3;
Durch die Implementierung dieser Ansätze können Sie virtuelle Tabellen in PostgreSQL effektiv erstellen und so Flexibilität und Anpassung ermöglichen in der Datenverarbeitung.
Das obige ist der detaillierte Inhalt vonWie erstelle ich virtuelle Tabellen in PostgreSQL mit „setof record'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!