ПочатиПочніть безкоштовно

Перехоплення конкретних винятків

Створімо функцію DO, яка фіксує випадок, коли значення glucose встановлено в null, і записує повідомлення з чітким поясненням, що Glucose не може бути null.

Ця вправа є частиною курсу

Транзакції та обробка помилок у PostgreSQL

Переглянути курс

Інструкції до вправи

  • У блоці BEGIN функції DO виконайте INSERT у patients рядка (a1c=7.5, glucose=null, fasting=TRUE).
  • Додайте виняток not_null_violation, який у разі помилки вставляє "Glucose can not be null." у стовпець detail таблиці errors.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- 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;
Редагувати та запускати код