PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL-Funktion, die mehrere Resultsets zurückgibt

Eine einfachere Möglichkeit gibt es seit PostgreSQL 8.3 :

CREATE FUNCTION test()
  RETURNS SETOF first_table AS
$func$
BEGIN

RETURN QUERY
SELECT * FROM first_table;

RETURN QUERY
SELECT * FROM second_table;   -- has to return same rowtype as first_table!

END
$func$ LANGUAGE plpgsql;

Aufruf:

SELECT * FROM test();

Beide Ergebnismengen werden an eine einzelne Menge angehängt, die von der Funktion zurückgegeben wird.
Siehe Handbuch für RETURN QUERY .