Problème exercices triggers

Fermé
Anonymous95340 Messages postés 114 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 7 décembre 2020 - 31 mai 2020 à 19:58
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 1 juin 2020 à 09:54
Bonjour,

Je suis débutant sur les triggers et j'ai trouvé cette exercice :
- Afin d’éviter qu’il puisse y avoir des erreurs de saisie, on souhaite qu’une réservation ne puisse pas être concernée par un séjour dont la date de début est antérieure à la date de réservation.
Travail à réaliser
Coder le déclencheur correspondant

CREATE FUNCTION reglementSejour(idResa integer)
RETURNS numeric(l0,2)
AS $codeFonction$
DECLARE
numCli integer ;
montantDejaPaye numeric(l0,2) ;
BEGIN
SELECT idClient INTO numCli
FROM reservation
WHERE idReservation = idResa ;
SELECT SUM(montantReglement) INTO montantDejaPaye
FROM reglement
WHERE idReservation = idResa ;
IF (montantDejaPaye IS NULL ) THEN
montantDejaPaye = 0 ;
END IF ;
IF ((SELECT COUNT(*) FROM pro WHERE idClient = numCli)=l) THEN
RETURN(SELECT SUM(prix * duree) - montantDejaPaye
FROM contenir
JOIN chambre USING (numeroChambre)
JOIN concerner USING (numeroChambre,idReservation)
WHERE dateDebut >= CURRENT_DATE
AND idReservation = idResa
) ;
ELSE
RETURN (SELECT SUM(prix * duree)
FROM contenir
JOIN chambre USING (numeroChambre)
JOIN concerner USING (numeroChambre,idReservation)
WHERE idReservation = idResa
) ;
END IF ;
END ;
$codeFonction$ LANGUAGE PLPGSQL ;


J'ai codé ceci mais je sais que c'est faux c'est très peu et j'ai du mal a comprendre l'utilité du trigger
ce que je voudrai c'est la réponse et comprendre également l'utilité du déclencheur
 CREATE TRIGGER reservation
BEFORE idResa
IF (dateDebut < idResa)
;


Merci d'avance pour votre répondre

1 réponse