Scrierea instrucțiunilor DO
Atunci când curățăm date, întâlnim adesea valori cu date calendaristice incorecte. Acestea ar provoca o excepție și ar opri execuția instrucțiunii SQL. Totuși, folosind o funcție DO cu un handler de excepții, instrucțiunea va rula până la final. Hai să vedem cum putem gestiona acest tip de excepție cu ajutorul tabelei patients și al coloanei created_on. Aceasta ne oferă și ocazia de a folosi o funcție de tip DO.
Acest exercițiu face parte din cursul
Tranzacții și gestionarea erorilor în PostgreSQL
Instrucțiuni pentru exercițiu
- Creează o funcție
DOpentru a iniția interceptarea unei excepții. - Începe o tranzacție cu BEGIN, în care faci
INSERTpe rândul (a1c=5.8,glucose=89,fasting=TRUE, șicreated_on= '37-03-2020 01:15:54') în tabela patients. - Adaugă un handler
EXCEPTIONcare inserează'bad date'în coloanadetaila tabeleierrorsîn cazul unei erori. - Specifică limbajul
'plpgsql'.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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;