Bonjour,
Le INTO est mal positionné. Essayez comme ceci :
SELECT MAX(avenant) INTO temp FROM bqp.Contrat WHERE Contrat.id_projet = NEW.id_projet;
À la ligne suivante, il manque l'instruction SET :
SET NEW.avenant = temp+1 ;
Enfin, si c'est un premier avenant, il faut gérer le cas 0 (parce que le trigger va se déclencher et il n'y aura rien dans la variable temp) :
1 2 3 4 5
| IF temp IS NULL THEN
SET NEW.avenant = 0;
ELSE
SET NEW.avenant = temp+1 ;
END IF; |
Je n'ai pas testé et je n'utilise pas trop MySQL (encore moins les triggers), mais c'est par là qu'il faut chercher...
Par ailleurs, avez-vous prévu le cas d'une suppression de contrat ? Il faudra alors décrémenter "avenant".
Partager