我在一个函数中使用了临时表来保存一些结果,但是我不知道如何从函数中返回表格。理想情况下,我希望可以在一个查询中完成所有操作(即不需要两个查询:一个用于调用函数,另一个用于从临时表中获取数据)。
目前我的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()
中创建的,所以它不能成为其返回类型。
有什么好的想法可以解决这个问题吗?
谢谢