如果 postgres 在或附近面临语法错误

facing syntax error at or near if postgres

我是 POSTGRES 的新手,目前正在研究如何创建和执行存储过程。我正在尝试一个带有条件构造的简单示例,但遇到了一个错误:(

create procedure learnpostgre(x integer, y integer)
language plpgsql
as $$
if x > y
then
raise 'X is greater'
end if
$$;

我收到的错误是 'syntax error at or near if'。我在 SO 上看到了类似的问题,并尝试将我的代码块包装在 do 块下,但面对 'Do' 的相同错误消息。我是 运行 我在 pgadmin4 中的代码和 postgres 版本是 14.X

您缺少 beginend 以及一些分号。这应该有效:

create procedure learnpostgre(x integer, y integer)
language plpgsql
as $$
begin
if x > y
then
raise 'X is greater';
end if;
end
$$