J'ai une fonction de déclenchement que je veux seulement déclencher sur certaines instances d'INSERTS, dans ce cas, if do_backup = true
. S'il se déclenche dans tous les cas, j'obtiens une boucle infinie. La logique me semble assez simple, et le reste de la fonction fonctionne. Mais la fonction trigger ne semble pas enregistrer mon conditionnel et s'exécute toujours, même lorsque backup = true.Comment puis-je utiliser "IF instructions" dans un déclencheur postgres
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();
qui semble faire l'affaire , Merci! –