Ошибка синтаксиса (или нет) в PostgreSQL; SQL state: 42601
При попытке создать триггерную функцию выдает ошибку (прикрепил скрин).
Я так полагаю, проблема именно в if где присутствует RAISE EXCEPTION, ибо когда полностью удалял блок кода с raise exception, все создается прекрасно.
Подскажите, что не так с RAISE, и вообще с ним ли проблема? Почему-то пишет, что ошибка синтаксиса.
CREATE OR REPLACE FUNCTION count_days_IU() RETURNS TRIGGER AS $$
DECLARE
first_date float8;
second_date float8;
result_in_seconds float8;
result_ numeric;
BEGIN
SELECT EXTRACT(epoch FROM date_time)
INTO first_date
FROM pretension
WHERE id_1 = NEW.id_1_pretension;
second_date = EXTRACT(epoch FROM NEW.date_time);
result_in_seconds = second_date - first_date;
IF result_in_seconds < 0 THEN
RAISE EXCEPTION 'Invalid value of Date of Compensation. Check it out! You passed (%)', second_date USING HINT = 'Date of Compensation should be after Date of Pretension';
result_ = round(CAST((result_in_seconds / 86400) as numeric), 2);
NEW.compensation_period_in_days = result_;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER count_days BEFORE INSERT OR UPDATE ON compensation
FOR EACH ROW EXECUTE PROCEDURE count_days_IU();