相关疑难解决方法(0)

带有 SELECT 的 SQL 函数与带有 RETURN QUERY SELECT 的 PLPGSQL 函数?

执行 SQL 查询的普通 SQL 函数之间是否有区别:

create function get_sports() returns setof sport as
$body$
    select * from sport;
$body$
language sql stable;
Run Code Online (Sandbox Code Playgroud)

和 PLPGSQL 函数返回相同的 SQL 查询:

create function get_sports() returns setof sport as
$body$
begin
    return query select * from sport;
end
$body$
language plpgsql stable;
Run Code Online (Sandbox Code Playgroud)

关于性能?在什么情况下应该使用哪个版本?

如果我们传递参数,那会改变什么吗?如:

create function get_sports(status int) returns setof sport as
$body$
    select * from sport where status = $1;
$body$
language sql stable;

create function get_sports(status int) returns setof sport as
$body$
begin
    return …
Run Code Online (Sandbox Code Playgroud)

postgresql performance plpgsql functions postgresql-performance

5
推荐指数
1
解决办法
1915
查看次数