Aide concernant un trigger (MySQL Workbench)
Bonjour,
je suis en train de travailler sur la conception d'une base de données qui représente le contenu d'un stock d’ingrédients et sa consommation :
J'ai créé toutes les tables et vues nécessaires et deux triggers :
Table Ingredient : objet, categorie
Table Conso : consoID, surnom, objet, quantite
Table Stock : objet, quantite
Table Courses : objet
Le premier trigger sert à gérer la diminution des stocks : il est normal que lorsqu'un ingrédient est consommé, il faille le retirer des stocks. Ce trigger se déclenchera sur une insertion dans la table Conso.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
CREATE TRIGGER testTrigger BEFORE INSERT ON Conso FOR EACH ROW
BEGIN
DECLARE qtConso integer;
DECLARE prodConso varchar(50);
DECLARE restant integer;
DECLARE reste integer;
SET qtConso = NEW.quantite;
SET prodConso = NEW.objet;
SELECT quantite INTO restant FROM Stock WHERE objet = prodConso;
SET reste = restant - qtConso;
IF reste<0 THEN
SET NEW.quantite = restant;
UPDATE Stock SET quantite = 0 WHERE objet = prodConso;
ELSE
UPDATE Stock SET quantite = reste WHERE objet = prodConso;
END IF
END |
=> Celui-là marche bien.
Le deuxième trigger ajoutera dans la table "Courses" les ingrédients lorsque leur stock atteindra 0. Dans ce cas :
Code:
1 2 3 4 5 6
|
CREATE DEFINER=`root`@`localhost` TRIGGER `stock_AUPD` AFTER UPDATE ON `stock` REFERENCING
NEW ROW AS new
FOR EACH ROW
WHEN ((SELECT quantite FROM stock WHERE objet = new.objet) <= 0 )
INSERT INTO `courses`VALUES(new.objet) |
ET VOILA :) , pourriez-vous jeter un coup d'œil pour des rectifications à faire concernant le deuxième et le premier trigger ?