Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • DECLARE twee variabelen exc_message en exc_detail als text.
  • Haal de diagnostics-stack op en zet exc_message naar de MESSAGE_TEXT en exc_detail naar de PG_EXCEPTION_DETAIL.
  • Voeg exc_message en exc_detail in in de velden msg en detail van 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;
Code bewerken en uitvoeren