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
Instrukcje do ćwiczenia
- Wewnątrz bloku
BEGINfunkcji DO użyj instrukcjiINSERT, aby wstawić do tabelipatientswiersz (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;