PostgreSQL IF EXISTS在FUNCTION Error 42601中

时间:2014-06-09 03:40:56

标签: function postgresql if-statement syntax-error

我想创建一个函数,在检查表中是否有任何行返回整数变量(或布尔值)后,RESERVATION的RESERVATION_ID等于我给它的reser_id。但我的代码在IF声明中似乎错了。

这是我的查询代码:

    CREATE OR REPLACE Function fcn_check (reser_id integer) RETURNS integer AS $$
BEGIN
    IF (EXISTS (SELECT * FROM TICKET_TICKET WHERE reservation_id = reser_id) )
        THEN SELECT 1 AS result;
    ELSE SELECT 0 AS result;
    END IF;
END     
$$ LANGUAGE SQL;

错误消息是:

ERROR:  syntax error at or near "IF"
LINE 2:  IF (SELECT * FROM TICKET_TICKET WHERE reservation_id = rese...
         ^

********** Error **********

ERROR: syntax error at or near "IF"
SQL state: 42601
Character: 76

我是pgsql的新手,看起来我没有努力解决这个问题,但请帮助我。 非常感谢!

1 个答案:

答案 0 :(得分:1)

  

$$ LANGUAGE SQL;

您似乎在编写PL / PgSQL,但您已将其声明为SQL。

使用LANGUAGE plpgsql