Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Bên trong khối BEGIN của hàm DO, INSERT vào patients mộ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;
Chỉnh sửa và Chạy Mã