par
Pomgar » 15 janv. 2016, 16:25
Bonjour,
Je suis un débutant en SQL, et j'ai un peu de mal à utiliser les triggers.
J'ai donc un tableau "Championnat" qui contient les colonnes :
-Numéro du match
-Nom de l'équipe 1
-Nom de l'équipe 2
-Score
-Points gagnés par l'équipe 1
-Points gagnés par l'équipe 2
J'ai un autre tableau Classement_Championnat qui contient :
-Rang
-Nom de l'équipe
-Points
J'ai donc envie de modifier Classement_Championnat à chaque insertion dans le tableau Championnat (i.e dès qu'un match a été joué).
J'ai fait ça, mais ça n'a vraiment pas l'air de fonctionner :
CREATE OR REPLACE FUNCTION Fct_MAJchampionnat() RETURNS trigger AS '
BEGIN
classement_championnat.Points = classement_championnat.Points + NEW.Tournoi.Points_Equipe1
WHERE classement_championnat.Equipe = NEW.Tournoi.Equipe1 AND NEW.Tournoi.nom_tournoi = 'Championnat'
classement_championnat.Points = classement_championnat.Points + NEW.Tournoi.Points_Equipe2
WHERE classement_championnat.Equipe = NEW.Tournoi.Equipe2 AND NEW.Tournoi.nom_tournoi = 'Championnat'
END;
'LANGUAGE 'plpgsql';
CREATE TRIGGER MAJChampionnat
AFTER INSERT ON Championnat
FOR EACH ROW
EXECUTE PROCEDURE Fct_MAJchampionnat();
Voici l'erreur renvoyée :
ERREUR: erreur de syntaxe sur ou près de « Championnat »
LINE 4: ...EW.Tournoi.Equipe1 AND NEW.Tournoi.nom_tournoi = 'Championna...
^
********** Erreur **********
ERREUR: erreur de syntaxe sur ou près de « Championnat »
État SQL :42601
Caractère : 256
Merci !
Bonjour,
Je suis un débutant en SQL, et j'ai un peu de mal à utiliser les triggers.
J'ai donc un tableau "Championnat" qui contient les colonnes :
-Numéro du match
-Nom de l'équipe 1
-Nom de l'équipe 2
-Score
-Points gagnés par l'équipe 1
-Points gagnés par l'équipe 2
J'ai un autre tableau Classement_Championnat qui contient :
-Rang
-Nom de l'équipe
-Points
J'ai donc envie de modifier Classement_Championnat à chaque insertion dans le tableau Championnat (i.e dès qu'un match a été joué).
J'ai fait ça, mais ça n'a vraiment pas l'air de fonctionner :
CREATE OR REPLACE FUNCTION Fct_MAJchampionnat() RETURNS trigger AS '
BEGIN
classement_championnat.Points = classement_championnat.Points + NEW.Tournoi.Points_Equipe1
WHERE classement_championnat.Equipe = NEW.Tournoi.Equipe1 AND NEW.Tournoi.nom_tournoi = 'Championnat'
classement_championnat.Points = classement_championnat.Points + NEW.Tournoi.Points_Equipe2
WHERE classement_championnat.Equipe = NEW.Tournoi.Equipe2 AND NEW.Tournoi.nom_tournoi = 'Championnat'
END;
'LANGUAGE 'plpgsql';
CREATE TRIGGER MAJChampionnat
AFTER INSERT ON Championnat
FOR EACH ROW
EXECUTE PROCEDURE Fct_MAJchampionnat();
Voici l'erreur renvoyée :
ERREUR: erreur de syntaxe sur ou près de « Championnat »
LINE 4: ...EW.Tournoi.Equipe1 AND NEW.Tournoi.nom_tournoi = 'Championna...
^
********** Erreur **********
ERREUR: erreur de syntaxe sur ou près de « Championnat »
État SQL :42601
Caractère : 256
Merci !