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 :
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
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 );
Si quelqu'un voit le problème, merci.
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;
Partager