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 :

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 ;
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.

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 :
"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."
Connaîtriez-vous une solution pour remédier à ce problème ?
Je vous remercie d'avance.

moheissenger