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

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

Xem khóa học

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 INSERT hà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 EXCEPTION handler, chèn 'bad date' vào cột detail của bảng errors trong 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;
Chỉnh sửa và Chạy Mã