热使用过程调用的结果作为条件

Hot to use results from procedure calls as conditions

我有一个检查条件的程序(如果会话已满)。我想创建一个触发器,在插入新预订之前检查会话是否已满。

我想象的是这样的。

CREATE OR REPLACE FUNCTION check_if_session_is_full_trigger()
   RETURNS trigger AS
$BODY$
BEGIN
     IF (EXECUTE session_is_full(NEW.session_id)) THEN
         RAISE EXCEPTION 'SESSION IS FULLY BOOKED';
    RETURN NEW;
END;
$BODY$
   LANGUAGE plpgsql; 

但我明白了

ERROR:  syntax error at or near "session_is_full"
LINE 5:      IF (EXECUTE session_is_full(NEW.session_id) = TRUE) THE...

很明显我做错了什么。

session_is_full(int) returns 布尔值。

我走在正确的轨道上吗?如何解决这个问题?

IF (session_is_full(NEW.session_id)) 应该工作 – @a_horse_with_no_name