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

SQL Procédural MySQL Discussion :

Création d'un trigger pour la réduction d'une valeur d'une colonne


Sujet :

SQL Procédural MySQL

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2017
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Création d'un trigger pour la réduction d'une valeur d'une colonne
    Bonjour à tous

    Je viens vous demander un peu d'aide car je galère énormément à écrire un trigger dans MySQL.

    L'objectif du trigger que je veux créer :
    J'aimerai que, dès que le client atteint ou dépasse les 100 points, il bénéficie d'une réduction de 20% sur le prix total de sa dernière commande. Autrement dit, si, dans la colonne "nombre de point" dans l'entité client, la valeur devient égale ou supérieur à 100, alors on diminue la valeur de 20% dans "prix total" de l'entité "commandes des clients".

    J'ai écrit ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    create trigger REDUCTION
    after update nombre_de_points on CLIENTS
    for each row
    when (old.total_nbre_de_points < 100 and new.total_nbre_de_point >=100)
    begin
    update COMMANDES_DES_CLIENTS
    set total_prix_de_la_commande = old.total_prix_de_la_commande -(total_prix_de_la_commande * 20)/100
    where total_prix_de_la_commande = new.total.prix_de_la_commande
    end ;
    Et ma BDD est organisée de la façon suivante :

    - à chaque type d'article est rattaché un nombre de points (// colonne "nombre de points" dans article)
    exemple : 1 robe = 10 points
    - le total des points par commande est calculé dans la colonne "nombre de points" dans l'entité "commandes des clients";
    - dans "commandes des clients", il y a également un champ dans lequel est calculé le prix total de chaque commande ;
    - dans l'entité "client", la colonne "nombre de point calcule l'ensemble des points par client (en faisant la somme des points de toutes les commandes d'un même client).

    J'ai besoin d'aide car MySQL me met des erreurs de syntaxe à toutes les lignes. Je pense donc que mon raisonnement est bon et que c'est le code SQL que je dois ré-organiser.

    Merci d'avance Pièce jointe 337477

  2. #2
    Membre confirmé Avatar de isabelle.letrong
    Femme Profil pro
    Conseil - Consultante en systèmes d'information
    Inscrit en
    Juillet 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultante en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 109
    Points : 487
    Points
    487
    Par défaut
    Bonjour Mélie98,

    Indépendamment de la justesse de votre calcul, dans la séquence de code :
    • begin doit être situé juste après 'for each row'
    • new.total.prix_de_la_commande, dans la dernière ligne avant 'end', est incorrect puisque la colonne new.total.prix_de_la_commande appartient apparemment à la table COMMANDES_DES_CLIENTS et non à la table CLIENTS

Discussions similaires

  1. [2012] Création d'un trigger pour la comparaison et la MAJ en même temps
    Par bt-med dans le forum Développement
    Réponses: 5
    Dernier message: 25/03/2017, 14h00
  2. Création d'un trigger pour l'insertion et la MAJ à la fois
    Par haylox dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/01/2013, 22h02
  3. pb pour rentrer une valeur dans une bdd mysql
    Par gaetan.tranvouez dans le forum Requêtes
    Réponses: 25
    Dernier message: 02/06/2006, 21h29
  4. Probleme pour insérer une valeur dans une bdd
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 30/05/2006, 10h58

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