Aan de slagGa gratis aan de slag

Specifieke exceptions vastleggen

Laten we een DO-functie bouwen die opvangt wanneer glucose op null wordt gezet en een bericht logt dat expliciet aangeeft dat Glucose niet null mag zijn.

Deze oefening maakt deel uit van de cursus

Transacties en foutafhandeling in PostgreSQL

Cursus bekijken

Oefeninstructies

  • Voeg binnen het BEGIN-blok van de DO-functie met INSERT in patients de rij in (a1c=7.5, glucose=null en fasting=TRUE).
  • Voeg een not_null_violation-exception toe die bij een fout "Glucose can not be null." in de detailkolom van errors invoegt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

-- 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;
Code bewerken en uitvoeren