Psaní příkazů DO
Při čištění dat se často setkáme s neplatnými daty, která způsobí výjimku a přeruší SQL příkaz. Pokud ale použijeme funkci DO s obslužným blokem výjimky, příkaz se dokončí celý. Podíváme se, jak takovou výjimku ošetřit pomocí tabulky patients a sloupce created_on – a zároveň si vyzkoušíme funkci DO.
Toto cvičení je součástí kurzu
Transakce a ošetření chyb v PostgreSQL
Pokyny k cvičení
- Vytvoř funkci
DOpro zahájení zachytávání výjimky. - Pomocí BEGIN spusť transakci, ve které
INSERTuješ řádek (a1c=5.8,glucose=89,fasting=TRUEacreated_on= '37-03-2020 01:15:54') do tabulky patients. - Přidej obslužný blok
EXCEPTION, který v případě chyby vloží hodnotu'bad date'do sloupcedetailtabulkyerrors. - Zadej jazyk
'plpgsql'.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- 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;