CommencerCommencer gratuitement

É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

Afficher le cours

Instructions

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