PostgreSQL function returning multiple result sets

前端 未结 4 872
借酒劲吻你
借酒劲吻你 2020-11-27 19:08

Is it possible to return multiple result sets from a Postgres function, like in MSSQL:

CREATE PROCEDURE test

AS

SELECT * FROM first_table

SELECT * FROM se         


        
4条回答
  •  长情又很酷
    2020-11-27 19:43

    A simpler way has been around since 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;
    

    Call:

    SELECT * FROM test();
    

    Both result sets are appended to a single set returned from the function.
    See the manual for RETURN QUERY.

提交回复
热议问题