2
INSERT의 특정 인스턴스 (이 경우 if do_backup = true
)에서만 실행하려는 트리거 기능이 있습니다. 모든 인스턴스에서 발생하면 무한 루프가 발생합니다. 로직은 나에게 매우 단순하게 보이고 나머지 기능은 작동한다. 하지만 트리거 기능은 내 조건을 등록하지 않는 것 같고 backup = true 일 때도 항상 실행됩니다.postgres 트리거에서 "IF statements"을 어떻게 사용할 수 있습니까?
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();
, 감사! –