Bonjour à tous.
Je travaille actuellement sur les triggers MySQL pour un projet et je suis confronté à un problème depuis aujourd'hui.
Je possède une table 'abc'. Mon trigger 'trig_abc' est branché dessus. En voici le code :
En gros, je souhaite modifier la valeur de tous les 'champ2' de 'abc' lorsque 'champ1' vaut la valeur du 'champ' de la nouvelle ligne, avant insertion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DELIMITER // CREATE TRIGGER trig_abc BEFORE INSERT ON abc FOR EACH ROW BEGIN UPDATE abc SET champ2 = '999' WHERE champ1 = NEW.champ1; END// DELMITER ;
Seulement MySQL n'est pas content et c'est même normal : j'essaie de mettre à jour une table déjà en lecture. L'exception levé par mon programme Java le confirme :
Connaîtriez-vous une solution pour remédier à ce problème ?"java.sql.SQLException: Can't update table 'abc' in stored function/trigger because it is already used by statement which invoked this stored function/trigger."
Je vous remercie d'avance.
moheissenger
Partager