Problème de trigger d'update en MySQL

mise à jour d'un attribut de contage d'un tuple de contage lors de l'onsertion dans une autre table

a marqué ce sujet comme résolu.

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;
Diagramme de classes

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)

Erreur phpmyadmin trigger MySQL trigger phpmyadmin MySQL configuration MySQL

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.

+0 -0

Il te faut changer le DELIMITER ?

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//

Et dans la case délimiteur de pma, si tu passes par lui, tu saisis //. Sinon tu mets cette instruction delimiter // avant.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte