【问题标题】:Syntax error with pgSQL, using functions and if elsepgSQL的语法错误,使用函数和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;

任何可能的解决方案?提前致谢!

【问题讨论】:

    标签: sql database postgresql plpgsql pgadmin


    【解决方案1】:

    You forgot the BEGIN.

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2018-08-30
      • 2020-03-15
      相关资源
      最近更新 更多