Écrire des instructions DO
Lors du nettoyage de données, il arrive souvent que certaines comportent de mauvaises dates. Cela provoquerait une exception et arrêterait notre instruction SQL. Toutefois, en utilisant une fonction DO avec un gestionnaire d'exceptions, notre instruction pourra s'exécuter jusqu'au bout. Voyons comment gérer ce type d'exception avec la table patients et la colonne created_on. Cela nous donnera aussi l'occasion d'utiliser une fonction de type DO.
Cette activité fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions de l’exercice
- Créez une fonction
DOpour commencer à intercepter une exception. - BEGIN une transaction où vous
INSERTla ligne (a1c=5.8,glucose=89,fasting=TRUE, etcreated_on= '37-03-2020 01:15:54') dans patients. - Ajoutez un gestionnaire
EXCEPTIONqui insère'bad date'dans la colonnedetailde la tableerrorsen cas d'erreur. - Précisez la langue
'plpgsql'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- Create a DO $$ function
____ ____
-- BEGIN a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting, created_on)
VALUES (____, ____, ____, '37-03-2020 01:15:54');
-- Add an EXCEPTION
___
-- For all all other type of errors
WHEN others THEN
INSERT INTO errors (msg, detail)
VALUES ('failed to insert', '____');
END;
-- Make sure to specify the language
$$ language '____';
-- Select all the errors recorded
SELECT * FROM errors;