Salut, je vous explique rapidement la situation :

J'ai trois classes d'entités :
- Colis
-Camion
-Type camion ,

Colis est relié a camion par la classe d'association estlivré qui a 2 attributs : quantité et date.


Camion possede la table Typecamion car il s'agit d'une dépendance fonctionnelles ( clé et attribut contenu dans Camion sous forme de clé étrangère)
Donc ca fait un truc du genre :

Colis(codecolis, volume,poids) ----Estlivré (quantité,date) ---Camion(noimm,volumeMax, PoidsMax )

Trigger que j'aimerais faire :

Un trigger qui prend le colis multiplié par sa quantité et son volume et le compare au volume max de typecamion ( attribut dans la table camion )

Un trigger qui prend le colis multiplié par sa quantité et son poids et le compare au poids max de typecamion ( attribut dans la table camion )

J'ai un début de quelque chose , je suis clairement conscient que c'es faux mais c'est une ébauche si vous pouviez m'aider.

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
CREATE OR REPLACE TRIGGER ColisxQuantite>PoidsMax BEFORE
  INSERT OR UPDATE 
    ON Colis and EstLivre and TypeCamion FOR EACH ROW 
 
  DECLARE 
    ColisxQuantite>PoidsMax EXCEPTION ;
 
  BEGIN
    IF :new.Colis.Poids*:new.estlivre.quantité > :New.TypeCamion.PoidsMax THEN  
      RAISE ColisxQuantite>PoidsMax ;
 
    END IF ;
 
  EXCEPTION
  WHEN ColisxQuantite>PoidsMax THEN
    raise_application_error (-20009 , 'La Somme des Colis depasse le PoidsMaximal du Type de Camion.') ;
 
END ;
S'il vous faut des précisions dites moi je tacherais de vous les donner , desole de pas avoir d'image de ma base si je peux je vous le rajouterais.
Merci d'avance a la communauté.