Viết câu lệnh do
Khi làm sạch dữ liệu, bạn thường sẽ gặp các bản ghi có ngày tháng không hợp lệ. Điều này sẽ gây ra ngoại lệ và dừng câu lệnh SQL; tuy nhiên, bằng cách dùng hàm DO với một exception handler, câu lệnh của bạn vẫn chạy đến hết. Hãy xem cách xử lý kiểu ngoại lệ này với bảng patients và cột created_on. Bài này cũng là dịp để bạn dùng hàm theo kiểu DO.
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
- Tạo một hàm
DOđể bắt đầu cơ chế bắt ngoại lệ. - BEGIN một transaction nơi bạn
INSERThàng (a1c=5.8,glucose=89,fasting=TRUE, vàcreated_on= '37-03-2020 01:15:54') vào bảng patients. - Thêm một
EXCEPTIONhandler, chèn'bad date'vào cộtdetailcủa bảngerrorstrong trường hợp có lỗi. - Chỉ định ngôn ngữ
'plpgsql'.
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.
-- Create a DO $$ function
____ ____
-- BEGIN a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting, created_on)
VALUES (____, ____, ____, '37-03-2020 01:15:54');
-- Add an EXCEPTION
___
-- For all all other type of errors
WHEN others THEN
INSERT INTO errors (msg, detail)
VALUES ('failed to insert', '____');
END;
-- Make sure to specify the language
$$ language '____';
-- Select all the errors recorded
SELECT * FROM errors;