Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • DECLARE de två variablerna exc_message och exc_detail som text.
  • Hämta diagnostikstacken och tilldela exc_message värdet från MESSAGE_TEXT och exc_detail värdet från PG_EXCEPTION_DETAIL.
  • Infoga exc_message och exc_detail i fälten msg och detail i 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;
Redigera och kör kod