pgSQL的语法错误,使用函数和if else
Posted
技术标签:
【中文标题】pgSQL的语法错误,使用函数和if else【英文标题】:Syntax error with pgSQL, using functions and if else 【发布时间】:2014-04-04 14:58:14 【问题描述】:我正在使用 postgreSQL 进行一些练习,我正在创建一个非常简单的函数,它根据变量“num”的值将一行插入到表中。但是,当我尝试创建函数时,我在 pgAdmin III 中收到以下错误:
“发生错误:错误:IF LINE 3 或其附近的语法错误:IF num = 1 THEN”
这是我的代码:
CREATE FUNCTION "elseIf"(IN num integer) RETURNS void AS
$BODY$
IF num = 1 THEN
INSERT INTO "Accounts"(
"Email", "Password")
VALUES ('email1', 'password1');
ELSE
INSERT INTO "Accounts"(
"Email", "Password")
VALUES ('email2', 'password2');
END IF;
$BODY$
LANGUAGE plpgsql VOLATILE NOT LEAKPROOF;
ALTER FUNCTION public."elseIf"(IN integer)
OWNER TO repository;
任何可能的解决方案?提前致谢!
【问题讨论】:
【参考方案1】:You forgot the BEGIN
.
PL/PgSQL 必须包装在 BEGIN ... END
块中。
... RETURNS VOID AS
$BODY$
BEGIN
IF num = 1 THEN
...
END IF;
END;
$BODY$ ....
【讨论】:
以上是关于pgSQL的语法错误,使用函数和if else的主要内容,如果未能解决你的问题,请参考以下文章