2016-05-31 2 views
0

У меня есть процедура, которая проверяет состояние (если сеанс полностью забронирован). Я хочу создать триггер, который проверяет, полностью ли заполнен сеанс, прежде чем вводить новое бронирование.Горячие результаты использования вызовов процедур как условия

Я думаю, что это будет похоже на что-то подобное.

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) возвращает boolean.

Я нахожусь на правильном пути и как это исправить?

+2

'IF (session_is_full (NEW.session_id))' должна работать –

+0

спасибо, это странно, потому что я был сделать еще один триггер раньше, и это Wouldnt работать без инструкции execute. Можете ли вы опубликовать отдельную запись, чтобы я мог ее закрыть? – LLL

ответ

0

IF (session_is_full (NEW.session_id)) должны работать - @a_horse_with_no_name

Смежные вопросы