Zacznij terazZacznij za darmo

Przechwytywanie określonych wyjątków

Zbudujmy funkcję DO, która wykrywa sytuację, gdy wartość glukozy jest ustawiona na null, i rejestruje komunikat wyraźnie informujący, że glukoza nie może być null.

To ćwiczenie jest częścią kursu

Transakcje i obsługa błędów w PostgreSQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Wewnątrz bloku BEGIN funkcji DO użyj instrukcji INSERT, aby wstawić do tabeli patients wiersz (a1c=7.5, glucose=null, fasting= TRUE).
  • Dodaj wyjątek not_null_violation, który wstawia wartość "Glucose can not be null." do kolumny detail tabeli errors w przypadku wystąpienia błędu.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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;
Edytuj i uruchom kod