IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PostgreSQL Discussion :

[Débutant] Triggers et Fonctions


Sujet :

PostgreSQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Débutant] Triggers et Fonctions
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    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 !

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    essaye avec les $$

    Citation Envoyé par Pomgar Voir le message


    [CODE]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;

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/03/2010, 19h39
  2. [Débutant] Notation de fonction
    Par zuckonline dans le forum Scheme
    Réponses: 5
    Dernier message: 05/11/2006, 07h02
  3. Réponses: 11
    Dernier message: 27/04/2006, 15h03
  4. [Débutant] Pointeurs et fonctions
    Par vinzzzz dans le forum C
    Réponses: 5
    Dernier message: 15/01/2006, 15h25
  5. [Débutant] Aide utilisation fonctions :(
    Par trakiss dans le forum Débuter
    Réponses: 10
    Dernier message: 27/08/2004, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo