PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Função PostgreSQL retornando vários conjuntos de resultados


Uma maneira mais simples existe desde o 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;

Ligar:
SELECT * FROM test();

Ambos os conjuntos de resultados são anexados a um único conjunto retornado da função.
Consulte o manual para RETURN QUERY .