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 :
Et ma BDD est organisée de la façon suivante :
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 ;
- à 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
Partager