Bonjour,
je vais tout d'abord vous expliquer ma problématique car la solution des trigger n'est peut-être pas la meilleure et je pense que ce que je veux faire beaucoup de monde l'a déjà fait avant moi.
Voilà, je fais un import dans ma base Postgres de données venant de Documentum (ce n'est qu'un détail).
Chaque document est identifié par un id unique et un id commun à sa série de documents et à l'intérieur de cette série seul un document est définit en tant que version courante.
J'ai donc dans ma table "document" les 2 ids de chaque document (celui propre au document et celui commun à sa série documentaire) et un booléen qui indique si il est la version courante de la série.
Pour être sûr qu'il n'y est qu'une version courante par série documentaire j'ai donc un trigger qui est déclenché à chaque action (insert , update, delete) et qui met à jour la version courante de la série. Donc en fait, si un document est inséré en tant que nouvelle version courante par exemple, le trigger va être déclenché pour mettre à jour l'ancienne version courante (mettre son booléen à false)... ce qui va de nouveau déclencher le trigger et ainsi de suite.
J'ai donc voulu désactiver le trigger une fois qu'il a été lancé pour ne pas qu'il se déclenche en cascade mais pgAdmin me dit que ce n'est pas possible (ce que je comprends) et refuse de le valider.
Alors comment faire ?
Partager