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

Lấy stacked diagnostics

Stacked diagnostics có thể lấy thông điệp lỗi nội bộ của PostgreSQL và chi tiết ngoại lệ. Hãy quay lại bảng bệnh nhân và thử thêm một giá trị A1C vượt quá giới hạn kiểm tra. Việc này sẽ gây ra ngoại lệ ràng buộc kiểm tra (check constraint) mà bạn có thể bắt được. Bạn có thể dùng stacked diagnostics trong trình xử lý ngoại lệ để làm giàu bản ghi lỗi.

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

  • DECLARE hai biến exc_messageexc_detail kiểu text.
  • Lấy ngăn xếp chẩn đoán và gán exc_message bằng MESSAGE_TEXTexc_detail bằng PG_EXCEPTION_DETAIL.
  • Chèn exc_messageexc_detail vào các trường msgdetail của bảng errors.

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.

DO $$ 
-- Declare our text variables: exc_message and exc_detail 
___
   ___ text;
   exc_detail ___;
BEGIN 
    INSERT INTO patients (a1c, glucose, fasting) 
    values (20, 89, TRUE);
EXCEPTION 
WHEN others THEN
    -- Get the exception message and detail via stacked diagnostics
	___ ___ ___ 
    	exc_message = ___,
        exc_detail = ___;
    -- Record the exception message and detail in the errors table
    INSERT INTO errors (___, detail) VALUES (exc_message, ___);
END;
$$ language 'plpgsql';

-- Select all the errors recorded
SELECT * FROM errors;
Chỉnh sửa và Chạy Mã