Práce se skládanou diagnostikou
Skládaná diagnostika umožňuje získat interní chybovou zprávu PostgreSQL a podrobnosti o výjimce. Vraťme se k naší tabulce pacientů a zkusme vložit hodnotu A1C překračující testovací limit. To vyvolá výjimku porušení omezení CHECK, kterou můžeme zachytit. V obsluze výjimky pak využijeme skládanou diagnostiku k obohacení záznamu o chybě.
Toto cvičení je součástí kurzu
Transakce a ošetření chyb v PostgreSQL
Pokyny k cvičení
- Pomocí
DECLAREdeklaruj dvě proměnnéexc_messageaexc_detailjako text. - Načti zásobník diagnostiky a přiřaď do
exc_messagehodnotuMESSAGE_TEXTa doexc_detailhodnotuPG_EXCEPTION_DETAIL. - Vlož
exc_messageaexc_detaildo polímsgadetailtabulky errors.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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;