Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich virtuelle Tabellen in PostgreSQL mit „setof record'?

Wie erstelle ich virtuelle Tabellen in PostgreSQL mit „setof record'?

Mary-Kate Olsen
Freigeben: 2024-12-24 21:18:35
Original
140 Leute haben es durchsucht

How to Create Virtual Tables in PostgreSQL using `setof record`?

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;
Nach dem Login kopieren

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();
Nach dem Login kopieren

Zusätzlich können Sie virtuelle Tabellen mithilfe einer einfachen SQL-Anweisung erstellen :

VALUES (1,2,3), (3,4,5), (3,4,5)
Nach dem Login kopieren

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);
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage