Comment faire un trigger avec des IF THEN ALSE ?
TSHITOS
-
TSHITOS -
TSHITOS -
Bonjour à tous !
je travail sur un petit projet de gestion de stock avec PHP/Mysql et je me trouve dans le besoin de créer un triggeur un peu complexe, j'aimerai qu'à chaque entrée des données dans la table "ENTREE" qu'on puisse vérifier si l'article entré en stock se trouve déjà dans la table stock(en vérifiant l’existence de son du code article), si non, faire un INSERT dans la table "STOCK", si le nom de l'article de trouve déjà faire un UPDATE dans la table "STOCK" modifiant juste la quantité, voici ce que je pense faire si quelqu'un peu m'aider puisque ca ne marche pas!:
CREATE TRIGGER entree_stock AFTER INSERT ON entree
FOR EACH ROW
BEGIN
IF((SELECT libelle FROM stock) IS NULL)
THEN
INSERT INTO stock (code_article,libelle,quantite,poids_net,poids_brut,categorie,num_entree)
VALUES (new.code_article,new.article,new.quantite_tot,new.poids_tot_net,new.poids_tot_brut,new.categorie,new.num_entree)
ELSE
UPDATE stock
SET stock.quantite = stock.quantite + new.quantite_tot
WHERE stock.libelle = new.article
END IF
END
je travail sur un petit projet de gestion de stock avec PHP/Mysql et je me trouve dans le besoin de créer un triggeur un peu complexe, j'aimerai qu'à chaque entrée des données dans la table "ENTREE" qu'on puisse vérifier si l'article entré en stock se trouve déjà dans la table stock(en vérifiant l’existence de son du code article), si non, faire un INSERT dans la table "STOCK", si le nom de l'article de trouve déjà faire un UPDATE dans la table "STOCK" modifiant juste la quantité, voici ce que je pense faire si quelqu'un peu m'aider puisque ca ne marche pas!:
CREATE TRIGGER entree_stock AFTER INSERT ON entree
FOR EACH ROW
BEGIN
IF((SELECT libelle FROM stock) IS NULL)
THEN
INSERT INTO stock (code_article,libelle,quantite,poids_net,poids_brut,categorie,num_entree)
VALUES (new.code_article,new.article,new.quantite_tot,new.poids_tot_net,new.poids_tot_brut,new.categorie,new.num_entree)
ELSE
UPDATE stock
SET stock.quantite = stock.quantite + new.quantite_tot
WHERE stock.libelle = new.article
END IF
END
1 réponse
-
Bonjour
Deja...(SELECT libelle FROM stock)
Sans where ?
Nb: a l'avenir, merci de poster ton code correctement https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
-
Merci pour l'infos, comme tu l'as bien constaté je suis nouveau sur ce forum, la remarque est sans doute pertinente et comme tu l'as dit, j'en tiendrai compte lors de mes prochaines interventions, toutefois ma préoccupation reste pendante! au sujet de l'absence de la clause "Where" cela m'a semblé sans importance vu que dans ma table "STOCK" le champ "libelle" est "Unique", ce qui me préoccupe c'est de savoir d'où proviendrait l'erreur dans mon code.
Merci ! -
-
-