У меня есть триггерная функция, которую я хочу запускать только в определенных случаях INSERTS, в данном случае, if do_backup = true
. Если он срабатывает во всех случаях, я получаю бесконечный цикл. Логика кажется мне довольно простой, а остальные функции работают. Но функция триггера, похоже, не регистрирует мои условия и всегда запускается, даже когда backup = true.
CREATE OR REPLACE FUNCTION table_styles_backup() RETURNS
TRIGGER AS $table_styles_backup$
DECLARE
...
do_backup boolean;
BEGIN
SELECT backup INTO do_backup FROM table_details WHERE id=NEW.table_meta_id;
IF (do_backup = true) THEN
...
INSERT INTO table_styles_versions
(
...
)
VALUES (
...
);
END IF;
RETURN NULL;
END;
$table_styles_backup$ LANGUAGE plpgsql;
CREATE TRIGGER table_styles_backup AFTER INSERT ON table_styles
FOR EACH ROW EXECUTE PROCEDURE table_styles_backup();