CommencezCommencez gratuitement

É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

Voir le cours

Instructions de l’exercice

  • Créez une fonction DO pour commencer à intercepter une exception.
  • BEGIN une transaction où vous INSERT la ligne (a1c = 5.8, glucose = 89, fasting = TRUE, et created_on = '37-03-2020 01:15:54') dans patients.
  • Ajoutez un gestionnaire EXCEPTION qui insère 'bad date' dans la colonne detail de la table errors en 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;
Modifier et exécuter le code