Xử lý ngoại lệ linh hoạt

Giao dịch và Xử lý Lỗi trong PostgreSQL

Jason Myers

Principal Engineer

Suy giảm linh hoạt trong thực tế

DO $$
BEGIN
    UPDATE cookies SET quantity = quantity-6 WHERE name = 'Linga';
EXCEPTION 
    WHEN check_violation THEN
        INSERT INTO errors (msg) values ('Quantity can not be less than 0');
        UPDATE cookies SET quantity = 0 WHERE name = 'Linga';
        INSERT INTO errors (msg) values ('Set quantity to the 0 for Linga.');
END$$;
Giao dịch và Xử lý Lỗi trong PostgreSQL

Khi nào dùng suy giảm linh hoạt

  • Tải dữ liệu từ hệ thống ngoài và muốn thay null bằng 0
  • Nhận số đo từ thiết bị chỉ chính xác đến một ngưỡng nhất định
  • Nhận ngày nằm ngoài phạm vi và muốn đặt về một giá trị chuẩn
  • Ghi mọi bản ghi gây ngoại lệ sang bảng khác để xử lý tiếp
Giao dịch và Xử lý Lỗi trong PostgreSQL

Khi cân nhắc xử lý ngoại lệ linh hoạt

  • Khi giá trị mới bị ẩn trong phép toán như sum, avg hoặc các phép tổng hợp khác.
  • Khi giá trị mới ảnh hưởng đến dữ liệu chuỗi thời gian.
Giao dịch và Xử lý Lỗi trong PostgreSQL

Hãy thực hành!

Giao dịch và Xử lý Lỗi trong PostgreSQL

Preparing Video For Download...