CommencerCommencez gratuitement

Capturer des exceptions spécifiques

Créons une fonction DO qui capture le cas où glucose est défini à null et enregistre un message indiquant explicitement que Glucose ne peut pas être null.

Cet exercice fait partie du cours

<cours>Transactions et gestion des erreurs dans PostgreSQL</cours>
Voir le cours

Instructions de l’exercice

  • À l’intérieur du bloc BEGIN de la fonction DO, faites un INSERT dans patients de la ligne (a1c=7.5, glucose=null, et fasting= TRUE).
  • Ajoutez une exception not_null_violation qui insère "Glucose can not be null." dans la colonne detail de errors en cas d’erreur.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
    INSERT INTO patients (a1c, glucose, fasting) 
    VALUES (7.5, ___, TRUE);
-- Catch an Exception                                                               
EXCEPTION
	-- Make it catch not_null_constraint exception types
    WHEN ___ ___
    	-- Insert the proper msg and detail
       INSERT INTO errors (___, detail) 
       VALUES ('failed to insert', '___');
END$$;
                                                                     
-- Select all the errors recorded
SELECT * FROM errors;
Modifier et exécuter le code