Stacked diagnostics ophalen
Met stacked diagnostics kun je het interne PostgreSQL-foutbericht en details over de exceptie ophalen. We kijken opnieuw naar onze tabel met patiënten en proberen een A1C toe te voegen die boven de testlimiet ligt. Dit veroorzaakt een check-constraint-exceptie die we kunnen opvangen. We kunnen de stacked diagnostics in de exception handler gebruiken om onze foutregistratie te verrijken.
Deze oefening maakt deel uit van de cursus
Transacties en foutafhandeling in PostgreSQL
Oefeninstructies
DECLAREtwee variabelenexc_messageenexc_detailals text.- Haal de diagnostics-stack op en zet
exc_messagenaar deMESSAGE_TEXTenexc_detailnaar dePG_EXCEPTION_DETAIL. - Voeg
exc_messageenexc_detailin in de veldenmsgendetailvan de tabel errors.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
DO $$
-- Declare our text variables: exc_message and exc_detail
___
___ text;
exc_detail ___;
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
values (20, 89, TRUE);
EXCEPTION
WHEN others THEN
-- Get the exception message and detail via stacked diagnostics
___ ___ ___
exc_message = ___,
exc_detail = ___;
-- Record the exception message and detail in the errors table
INSERT INTO errors (___, detail) VALUES (exc_message, ___);
END;
$$ language 'plpgsql';
-- Select all the errors recorded
SELECT * FROM errors;