Bắt các ngoại lệ cụ thể
Hãy xây dựng một hàm DO bắt trường hợp glucose được đặt thành null và ghi log một thông điệp nêu rõ rằng Glucose không được để null.
Bài tập này là một phần của khóa học
Giao dịch và Xử lý Lỗi trong PostgreSQL
Hướng dẫn bài tập
- Bên trong khối
BEGINcủa hàm DO,INSERTvàopatientsmột dòng có (a1c=7.5,glucose=null, vàfasting=TRUE). - Thêm ngoại lệ
not_null_violationđể chèn"Glucose can not be null."vào cột detail của bảng errors trong trường hợp có lỗi.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
-- 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;