Hämta staplad diagnostik
Staplad diagnostik ger tillgång till PostgreSQL:s interna felmeddelande och information om undantaget. Låt oss återvända till vår patienttabell och försöka lägga till ett A1C-värde som överskrider testgränsen. Det utlöser ett undantag för check-begränsning som vi kan fånga upp. Vi kan sedan använda den staplade diagnostiken i undantagshanteraren för att berika vår felregistrering.
Den här övningen är en del av kursen
Transaktioner och felhantering i PostgreSQL
Övningsinstruktioner
DECLAREde två variablernaexc_messageochexc_detailsom text.- Hämta diagnostikstacken och tilldela
exc_messagevärdet frånMESSAGE_TEXTochexc_detailvärdet frånPG_EXCEPTION_DETAIL. - Infoga
exc_messageochexc_detaili fältenmsgochdetaili feltabellen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;