ÎncepețiÎncepe gratuit

Captarea excepțiilor specifice

Hai să construim o funcție DO care detectează când glucose este setat la null și înregistrează un mesaj care specifică explicit că Glucose nu poate fi null.

Acest exercițiu face parte din cursul

Tranzacții și gestionarea erorilor în PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • În interiorul blocului BEGIN al funcției DO, folosește INSERT pentru a adăuga în patients rândul (a1c=7.5, glucose=null și fasting= TRUE).
  • Adaugă o excepție de tip not_null_violation care inserează "Glucose can not be null." în coloana detail din errors în cazul în care apare o eroare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
    INSERT INTO patients (a1c, glucose, fasting) 
    VALUES (7.5, ___, TRUE);
-- Catch an Exception                                                               
EXCEPTION
	-- Make it catch not_null_constraint exception types
    WHEN ___ ___
    	-- Insert the proper msg and detail
       INSERT INTO errors (___, detail) 
       VALUES ('failed to insert', '___');
END$$;
                                                                     
-- Select all the errors recorded
SELECT * FROM errors;
Editează și rulează codul