Bonjour je suis étudiant en informatique et je cherche désespérément à faire fonctionner un trigger en MySQL. Nous avons vu en cours la syntaxe Oracle, j’ai adapté le trigger en langage MySQL mais il ne veut pas passer. Le but de ce trigger est de mattre à jour un tuple (ex Tournoi1) dans une colonne qui contient le nombre de tuple d’une autre table (ex: classe1). Voici le code du trigger :
1 2 3 4 5 6 7 8 | CREATE TRIGGER t_insert_classe BEFORE INSERT ON Classe FOR EACH ROW BEGIN UPDATE Tournoi set nbClasses=nbClasses+1 where idTournoi=NEW.idTournoi; END; |
![](/media/galleries/3922/1b1abcab-cc0b-4b9e-bb96-6049b5d295c8.png)
Modèle relationnel de ma base de données :
- Tournoi (idTournoi, date, lieu, infoCompl, nbClasses, nbTables, nbRondes)
- Compte (idCompte, pseudo, mail, hashMdp, dateInsc, dateDerCo, typeCompte, actif)
- Classe (idClasse, ecole, nbEleves, prenomProf, nomProf, idTournoi#, idCompte#)
- Eleve (idEleve, nom, prenom, groupe, idClasse#)
- RealiserManche (idTournoi#, idEleve1#, idEleve2#, numTable, numRonde)
L’attribut nbClasses (que je veux mettre à jour avec le trigger) dans la table Tournoi compte le nombre de tuples dans la table Classe qui référencent un tournoi.
Ex : il y a un tournoi avec idTournoi=1 avec nbClasses=0. Lors de l’insertion d’une classe avec idTournoi=1 (clé étrangère), je veux que nbClasses pour le tournoi avec idTournoi=1 passe à 1.