Bonjour,

Je débute avec les triggers sous mysql et j'ai un problème.
J'ai une table note qui contient plusieurs identifiants et des champs NoteExam, NoteTp et MoyenneModule définie comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE note
(
IdFormation INT,
IdEtudiant INT,
IdModule INT,
IdIntervenant INT,
PRIMARY KEY(IdFormation,IdEtudiant,IdModule,IdIntervenant),
FOREIGN KEY (IdFormation) REFERENCES formation(IdFormation),
FOREIGN KEY (IdEtudiant) REFERENCES etudiant(IdEtudiant),
FOREIGN KEY (IdModule) REFERENCES modules(IdModule),
FOREIGN KEY (IdIntervenant) REFERENCES intervenant(IdIntervenant),
NoteExam INT NOT NULL,
NoteTp INT,
MoyenneModule FLOAT
);
Ce que je voudrais, c'est pouvoir créer un trigger qui permet à chaque insert d'une note d'exam et de tp, calcul la moyenne du module. Pour cela, j'ai réaliser le trigger suivant, mais j'ai des messages d'erreurs.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
CREATE TRIGGER calcul_moyenne
BEFORE INSERT ON note
FOR EACH ROW
BEGIN
  IF (NEW.NoteTp IS NULL) THEN 
  set @MoyenneModule=NEW.NoteExam;
 ELSE 
  set @MoyenneModule=(2/3)*NEW.NoteExam+(1/3)*NEW.NoteTp;
 END IF;
END;
Si quelqu'un voit le problème, merci.