У меня есть процедура, которая проверяет состояние (если сеанс полностью забронирован). Я хочу создать триггер, который проверяет, полностью ли заполнен сеанс, прежде чем вводить новое бронирование.Горячие результаты использования вызовов процедур как условия
Я думаю, что это будет похоже на что-то подобное.
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.
Я нахожусь на правильном пути и как это исправить?
'IF (session_is_full (NEW.session_id))' должна работать –
спасибо, это странно, потому что я был сделать еще один триггер раньше, и это Wouldnt работать без инструкции execute. Можете ли вы опубликовать отдельную запись, чтобы я мог ее закрыть? – LLL