0% ont trouvé ce document utile (0 vote)
13 vues2 pages

Vérification et modification de montants en PL/pgSQL

Le document définit deux fonctions PL/pgSQL pour la gestion des données dans une base de données. La première fonction vérifie si un code journal est référencé dans la table de livraison avant d'autoriser l'insertion, tandis que la seconde modifie un montant total à 700 000 si celui-ci est inférieur à 500 000, sinon elle lève une exception. Des déclencheurs sont également créés pour exécuter ces fonctions respectivement avant l'insertion et la mise à jour des données.

Transféré par

soumaila diaby
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues2 pages

Vérification et modification de montants en PL/pgSQL

Le document définit deux fonctions PL/pgSQL pour la gestion des données dans une base de données. La première fonction vérifie si un code journal est référencé dans la table de livraison avant d'autoriser l'insertion, tandis que la seconde modifie un montant total à 700 000 si celui-ci est inférieur à 500 000, sinon elle lève une exception. Des déclencheurs sont également créés pour exécuter ces fonctions respectivement avant l'insertion et la mise à jour des données.

Transféré par

soumaila diaby
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

1

CREATE OR REPLACE FUNCTION verifier_depositaires()

RETURNS TRIGGER AS $$

BEGIN

 Vérifie si le CODE_J ajouté dans JOURNAL est référencé dans


LIVRAISON

IF NOT EXISTS (

SELECT 1

FROM LIVRAISON

WHERE CODE_J = NEW.CODE_J

) THEN

RAISE EXCEPTION ‘Aucun dépositaire correspondant pour le journal


%.’, NEW.CODE_J ;

END IF ;

RETURN NEW ;

END ;

$$ LANGUAGE plpgsql ;

CREATE TRIGGER trigger_verification_depositaires

BEFORE INSERT ON JOURNAL

FOR EACH ROW

EXECUTE FUNCTION verifier_depositaires() ;

CREATE OR REPLACE FUNCTION modifier_montant_total()

RETURNS TRIGGER AS $$

BEGIN

 Vérifie si le MT est inférieur à 500 000

IF [Link] < 500000 THEN

[Link] := 700000 ; -- Modifier le montant à 700 000 f


ELSE

RAISE EXCEPTION ‘Modification annulée : le montant est supérieur ou


égal à 500 000 f.’ ;

END IF ;

RETURN NEW ;

END ;

$$ LANGUAGE plpgsql ;

CREATE TRIGGER trigger_modification_mt

BEFORE UPDATE ON V1

FOR EACH ROW

EXECUTE FUNCTION modifier_montant_total() ;

Vous aimerez peut-être aussi