Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich eine virtuelle Tabelle aus einer PostgreSQL-Funktion und gebe sie zurück?

Wie erstelle ich eine virtuelle Tabelle aus einer PostgreSQL-Funktion und gebe sie zurück?

Linda Hamilton
Freigeben: 2024-12-27 08:33:10
Original
336 Leute haben es durchsucht

How to Create and Return a Virtual Table from a PostgreSQL Function?

Zurückgeben einer virtuellen Tabelle aus einer Postgres-Funktion

In Postgres kann das Erstellen einer virtuellen Tabelle (ähnlich den virtuellen Tabellen von Oracle) mit erreicht werden eine Funktion. Mit dieser Funktion können Sie eine benutzerdefinierte Tabelle mit einer definierten Struktur und einem definierten Inhalt zurückgeben.

Korrekte Syntax

Hier ist die korrigierte Syntax für die von Ihnen angegebene Funktion:

CREATE OR REPLACE FUNCTION "public"."storeopeninghours_tostring" (open_id numeric)
  RETURNS TABLE (a int, b int, c int) AS
DECLARE
  returnrecords RECORD;
BEGIN
  INSERT INTO returnrecords(a, b, c) VALUES (1, 2, 3);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  RETURN TABLE returnrecords;
END;
Nach dem Login kopieren

Schlüssel Punkte

  • RETURNS TABLE: Gibt den Datentyp der virtuellen Tabelle an. In diesem Fall handelt es sich um eine Tabelle mit drei ganzzahligen Spalten mit den Namen a, b und c.
  • INSERT: Verwenden Sie INSERT-Anweisungen, um die virtuelle Tabelle mit Daten zu füllen.
  • RETURN TABLE: Verwenden Sie RETURN TABLE, um die virtuelle Tabelle aus dem zurückzugeben Funktion.

Aufrufen der Funktion

Sie können jetzt die Funktion aufrufen, um die virtuelle Tabelle abzurufen:

SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
Nach dem Login kopieren

Alternative Syntax

In Postgres 8.4 oder höher können Sie auch Folgendes verwenden PL/pgSQL-Syntax:

CREATE OR REPLACE FUNCTION f_foo()
  RETURNS TABLE (a int, b int, c int) AS $$
BEGIN
  RETURN QUERY VALUES
    (1, 2, 3),
    (3, 4, 5),
    (3, 4, 5);
END;
$$ LANGUAGE plpgsql;
Nach dem Login kopieren

Einfache SQL-Lösung

Für einen einfachen Fall wie diesen können Sie auch eine einfache SQL-Anweisung verwenden:

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

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine virtuelle Tabelle aus einer PostgreSQL-Funktion und gebe sie zurück?. 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