Écrire des instructions DO
Lors du nettoyage des données, il arrive souvent que certaines dates soient invalides. Cela déclencherait une exception et arrêterait notre instruction SQL ; cependant, en utilisant une fonction DO avec un gestionnaire d’exception, notre instruction s’exécutera 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 style DO.
Cet exercice fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions
- Créez une fonction
DOpour commencer à intercepter une exception. - Démarrez (BEGIN) une transaction où vous
INSERTez la ligne (a1c=5.8,glucose=89,fasting=TRUE, etcreated_on= '37-03-2020 01:15:54') dans patients. - Ajoutez un gestionnaire d’
EXCEPTIONqui insère'bad date'dans la colonnedetailde la tableerrorsen cas d’erreur. - Spécifiez la langue
'plpgsql'.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
-- 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;