验证函数内的布尔条件

时间:2013-07-09 17:32:35

标签: sql function postgresql stored-procedures

我编写了一个包含while语句的PostgreSQL函数,如:

WHILE id_exist == 'f' LOOP
    lotto_id = lotto_id + 1;
    id_exist = check_if_exist(lotto_id, 'lotto', 'id');
END LOOP;

其中id_exist是一个布尔变量,通过调用返回布尔值的check_if_exist()方法(在代码中使用)来初始化。

现在,当我尝试调用我的函数时,我收到此错误

ERROR:  operator does not exist: boolean == unknown
LINE 1: SELECT id_exist == 'f'
                    ^
HINT:  No operator matches the given name and argument type(s). You might need to add
explicit type casts.
QUERY:  SELECT id_exist == 'f'
CONTEXT:  PL/pgSQL function "acquistolotto" line 11 at WHILE

1 个答案:

答案 0 :(得分:1)

比较运算符是单个等号(“=”,而不是“==”)

另外,在进入循环之前是否将值设置为id_exist?