Bonjour,

j'ai un trigger sur une table qui doit, après insertion de données, effectuer plein de mises à jour sur d'autres tables. J'ai donc tout un tas de condition if, à ce sujet tout va bien, tous les cas "normaux" avec l'ajout de la ligne après les mises à jours fonctionnent. Mon soucis c'est que dans un cas précis, j'aimerai avoir les mises à jour dans les autres tables, mais pas d'ajout dans la table qui a déclenché le trigger.
J'ai vu sur d'anciens postes (et aussi sur la documentation de postegresql ...) qu'il fallait return null au lieu de return new, mais ça me renvoi une erreur "list index out of range".

J'ai essayé plus simple pour m'assurer que le soucis ne venait pas d'ailleurs, en ne laissant juste :
BEGIN
return null;
END

et j'ai le même message d'erreur. Je précise que je suis bien BEFORE INSERT et FOR EACH ROW, et que je ne peux pas simplement delete after insert car entre temps j'ai un conflit de clé primaire.
J'aimerai donc savoir comment utiliser le return null. Ou alors, s'il existe une manière de déclencher une fonction avant une insertion, qui fasse des trucs (juste bloquer par un conflit n'est pas possible), mais qui se termine par un équivalent de "ne pas stocker ce que l'utilisateur vient d'entrer".

Merci d'avance