я получил следующую PostGreSQL функции:ошибка синтаксиса Postgresql или вблизи «+»
CREATE OR REPLACE FUNCTION insert_address() RETURNS TRIGGER AS
$BODY$
DECLARE row_count INTEGER;
DECLARE max_id INTEGER;
DECLARE key_ INTEGER;
BEGIN
SELECT count(*) FROM ADDRESS INTO row_count;
IF row_count = 0
THEN SET NEW.id_address = 1;
ELSE SELECT count(table_name)
FROM FREE_KEYS
WHERE table_name = 'ADDRESS' INTO row_count;
IF row_count = 0
THEN SELECT max(id_address) FROM ADDRESS INTO max_id;
SET NEW.id_address = max_id + 1;
ELSE SELECT min(free_key) FROM FREE_KEYS WHERE table_name = 'ADDRESS' INTO key_;
SET NEW.id_address = key_;
DELETE FROM FREE_KEYS WHERE table_name = 'ADDRESS' AND free_key = key_;
END IF;
END IF;
END;
$BODY$ LANGUAGE plpgsql;
я не понимаю, почему операция присваивания возвращает следующее сообщение об ошибке:
ERROR: syntax error at or near "+"
LINE 700: SET NEW.id_address = max_id + 1;