我正在尝试创建一个 PL/pgSQL 函数,它应该填充一个临时表,然后从中返回所有行(稍后将是一个连接),但我不知道要为其指定哪种返回类型:
create or replace function pref_daily_misere() returns void as $BODY$
begin
create temporary table temp_best (id varchar not null) on commit drop;
insert into temp_best (id) select id from pref_money where
yw = to_char(current_timestamp - interval '1 week', 'IYYY-IW')
order by money desc limit 10;
select id from temp_best;
end;
$BODY$ language plpgsql;
上面的陈述可以自己工作,但给我错误
# select pref_daily_misere();
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function "pref_daily_misere" line 7 at SQL statement
当我尝试在我的 PostgreSQL 8.4.11 数据库中调用它时。
这可能是因为我错误地指定了上面的返回 void,但我不知道要使用哪种返回类型,而省略返回类型是编译错误。