我想创建一个函数,在检查表中是否有任何行返回整数变量(或布尔值)后,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的新手,看起来我没有努力解决这个问题,但请帮助我。 非常感谢!
答案 0 :(得分:1)
$$ LANGUAGE SQL;
您似乎在编写PL / PgSQL,但您已将其声明为SQL。
使用LANGUAGE plpgsql
。