为什么在创建PostgreSQL函数时出现语法错误?

时间:2019-08-02 18:33:13

标签: postgresql

我正在尝试使用以下查询在PostgreSQL中创建一个函数:

create function cs.has_double_bridge(cs.nose_bridge_type) returns boolean as $$
  return $1 = 'double bridge';
$$ language plpgsql stable;

但是我在第二行中仍然遇到错误:

ERROR:  syntax error at or near "return"
LINE 2:   return $1 = 'keyhole';
          ^

我不是PostgreSQL专家,所以我一直无法弄清错误的原因。我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

As documented in the manual PL / pgSQL需要一个BEGIN ... END块:

create function cs.has_double_bridge(cs.nose_bridge_type) 
  returns boolean 
as $$
begin
  return $1 = 'double bridge';
end;
$$ language plpgsql stable;

或者,您可以改用SQL函数:

create function cs.has_double_bridge(cs.nose_bridge_type) 
  returns boolean 
as $$
  select $1 = 'double bridge';
$$ language sql stable;