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();