IniziaInizia gratis

Catturare eccezioni specifiche

Creiamo una funzione DO che intercetta quando glucose è impostato a null e registra un messaggio che dichiara esplicitamente che Glucose non può essere null.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • All'interno del blocco BEGIN della funzione DO, esegui INSERT in patients della riga (a1c=7.5, glucose=null e fasting=TRUE).
  • Aggiungi un'eccezione not_null_violation che inserisca "Glucose can not be null." nella colonna detail di errors in caso di errore.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
    INSERT INTO patients (a1c, glucose, fasting) 
    VALUES (7.5, ___, TRUE);
-- Catch an Exception                                                               
EXCEPTION
	-- Make it catch not_null_constraint exception types
    WHEN ___ ___
    	-- Insert the proper msg and detail
       INSERT INTO errors (___, detail) 
       VALUES ('failed to insert', '___');
END$$;
                                                                     
-- Select all the errors recorded
SELECT * FROM errors;
Modifica ed esegui il codice