Bonjour,
Lors de la livraison d'une céréale par un adhérent, celle ci est pesée, et le système doit alors rechercher un silo disposant d'une capacité de stockage suffisante pour la céréale livrée. Si un silo est trouvé, alors la livraison est acceptée, enregistrée et affectée au silo trouvé. Sinon, la livraison est refusée, et bien sûr non enregistrée.
La gestion des livraisons et de stockage de céréales est modélisée par le modèle relationnel suivant :
CEREALE (code, nom)
clé primaire : code
SILO (numéro, capacité, quantitéSilo, codeCéréale)
clé primaire : numéro
clé étrangère : codeCéréale en référence à code de CEREALE
ADHERENT (numéro, nom, rue, CP, ville)
clé primaire : numéro
LIVRAISON (numéro, date, quantitéLivrée, refAdhérent, codeCéréale, numéroSilo)
clé primaire : numéro : clé primaire
clé étrangère : refAdhérent en référence à numéro de ADHERENT
clé étrangère : codeCéréale en référence à code de CEREALE
clé étrangère : numéroSilo en référence à numéro de SILO
Alors pour la gestion, j'ai décidé de réaliser deux triggers, l'un permettant de gérer les livraisons et un deuxième pour gérer le stockage.
J'ai essayé d'effectuer celui de la livraison mais il ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 DELIMITER | CREATE TRIGGER livr BEFORE INSERT ON livraison FOR EACH ROW BEGIN DECLARE QtteSilo INT SELECT quantiteSilo INTO QtteSilo FROM SILO AS S WHERE S.codeCéréale = :new.codeLivraison AND L.numéroSIlo = :new.numéroSilo IF :new.QuantitéLivrée < QtteSilo THEN RAISE_APPLICATION_ERROR(-201201,desole le silo ne peut pas s'enregistrer') ELSE END IF END
Partager