1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Giao dịch và Xử lý Lỗi trong PostgreSQL

Connected

Bài tập

Nhiều khối xử lý ngoại lệ

Vì ROLLBACK TO và SAVEPOINT không thể dùng trong hàm có bộ xử lý ngoại lệ, ta có cách mô phỏng hành vi tương tự bằng các khối lồng nhau. Các khối lồng nhau này dùng để nhóm và sắp xếp các câu lệnh theo thứ tự phụ thuộc lẫn nhau. Tại đây bạn sẽ chèn một khối bản ghi với bộ xử lý ngoại lệ mô phỏng SAVEPOINT, sau đó cập nhật một bản ghi với bộ xử lý ngoại lệ. Câu lệnh cập nhật đó sẽ báo lỗi, và bộ xử lý ngoại lệ sẽ tự động rollback chỉ riêng khối đó.

Hướng dẫn

100 XP
  • Trong khối đầu tiên, chèn các bản ghi sau vào patients (a1c=5.6, glucose=93, và fasting=TRUE), (6.3, 111, TRUE) (4.7, 65, TRUE) với một bộ xử lý EXCEPTION chèn 'failed to insert' làm msg vào bảng errors.
  • Mở một khối lồng nhau thứ hai và cập nhật bệnh nhân có ID bằng 1 để có giá trị fasting là 'true', kèm xử lý ngoại lệ ghi vào bảng errors với msg là 'Inserted string into boolean.'.
  • END cả hai khối.