我正在编写一个简单的postgres函数。此函数的结果应该是"events"表中的一行。我有以下内容:
create or replace function featured_event() returns setof events as
$$
begin
select events.* from events where featured is true;
end
$$ LANGUAGE plpgsql;
我不想硬编码列,而是使用现有表中的结构作为返回类型。
这是而不是由于我不想使用table
结果类型,带有SQL查询的Function的副本没有结果数据的目标。
使用SQL函数:
create or replace function featured_event() returns setof events as
$$
select events.* from events where featured is true;
$$ LANGUAGE sql;
在plpgsql中,您应该使用return query
:
create or replace function featured_event_plpgsql() returns setof events as
$$
begin
return query select events.* from events where featured is true;
end;
$$ LANGUAGE plpgsql;