我在函数中使用临时表来保存一些结果,但是我不知道如何从函数返回表。理想情况下,我想在一个查询中执行所有操作(即不是两个查询:一个用于调用该函数,另一个用于从临时表中获取数据)。如何在postgresql函数中返回临时表结果
目前我main_function()
如下:
CREATE OR REPLACE FUNCTION main_function() RETURNS void AS
$BODY$
BEGIN
DROP TABLE IF EXISTS temp_t CASCADE;
CREATE TEMP TABLE temp_t AS SELECT * FROM tbl_t limit 0;
EXECUTE 'INSERT INTO temp_t ' || 'SELECT * FROM tbl_t limit 10';
END;
$BODY$
LANGUAGE 'plpgsql' ;
我打电话来它像这样:同样
SELECT * from main_function();
SELECT * from temp_t;
,问题是,我不竟要拨打的第二个查询。第一个查询应该返回临时表作为结果,但是我不能这样做,因为临时表在main_function()
中创建,因此它不能是它的返回类型。
有关如何实现此目的的任何想法?
感谢
谢谢你,我明白了。 –