Do-statements schrijven
Bij het opschonen van data kom je vaak ongeldige datums tegen. Dat veroorzaakt een exceptie en stopt je SQL-statement. Met een DO-functie en een exceptiehandler kan je statement toch volledig worden uitgevoerd. Laten we kijken hoe we dit soort exceptie kunnen afhandelen met de tabel patients en de kolom created_on. Dit is ook een mooie gelegenheid om een DO-stijl functie te gebruiken.
Deze oefening maakt deel uit van de cursus
Transacties en foutafhandeling in PostgreSQL
Oefeninstructies
- Maak een
DO-functie om het afvangen van een exceptie te starten. - BEGIN een transactie waarin je de rij (
a1c=5.8,glucose=89,fasting=TRUEencreated_on= '37-03-2020 01:15:54') in patientsINSERT. - Voeg een
EXCEPTION-handler toe die bij een fout'bad date'invoegt in de kolomdetailvan de tabelerrors. - Specificeer de taal
'plpgsql'.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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;