pgSQL语法错误,使用函数和if else

时间:2014-04-04 14:58:14

标签: sql database postgresql plpgsql pgadmin

我正在使用postgreSQL练习一点,我正在创建一个非常简单的函数,根据变量'num'的值将一行插入表中。但是,当我尝试创建该函数时,我在pgAdmin III中得到以下错误:

“发生错误:错误:IF LINE 3处或附近的语法错误:IF num = 1那么”

这是我的代码:

    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 个答案:

答案 0 :(得分:1)

You forgot the BEGIN

PL / PgSQL必须包含在BEGIN ... END块中。

... RETURNS VOID AS
$BODY$
BEGIN
   IF num = 1 THEN
      ...
   END IF;
END;
$BODY$ ....