Khôi phục từ các lỗi gây ra bởi truy cập cơ sở dữ tỷ lệ kèo bóng đá 88 như được mô tả trongPhần 45.7.2có thể dẫn đến một tình huống không mong muốn trong đó một số hoạt động thành công trước khi một trong số chúng thất bại và sau khi khôi phục lỗi đó, dữ liệu bị bỏ lại ở trạng thái không nhất quán. PL/Python cung cấp một giải pháp cho vấn đề này dưới dạng các phép trừ rõ tỷ lệ kèo bóng đá 88.
Xem xét một chức năng thực hiện chuyển đổi giữa hai tỷ lệ kèo bóng đá 88 khoản:
Tạo chức năng Transfer_funds () trả về void dưới dạng $$
Nếu thứ haiCập nhật
Báo cáo dẫn đến một ngoại lệ được nêu ra, chức năng này sẽ báo cáo lỗi, nhưng kết quả của lần đầu tiênCập nhật
Tuy nhiên, sẽ được cam kết. Nói cách khác, các khoản tiền sẽ được rút khỏi tỷ lệ kèo bóng đá 88 khoản của Joe, nhưng sẽ không được chuyển vào tỷ lệ kèo bóng đá 88 khoản của Mary.
Để tránh tỷ lệ kèo bóng đá 88 vấn đề như vậy, bạn có thể bọc của mìnhplpy.execute
gọi trong một phép trừ rõ tỷ lệ kèo bóng đá 88. Theplpy
Mô -đun cung cấp một đối tượng trợ giúp để quản lý các phép trừ rõ tỷ lệ kèo bóng đá 88 được tạo bằngplpy.subtransaction ()
Hàm. tỷ lệ kèo bóng đá 88 đối tượng được tạo bởi chức năng này thực hiệnGiao diện Trình quản lý bối cảnh. Sử dụng các phép trừ rõ tỷ lệ kèo bóng đá 88, chúng tôi có thể viết lại chức năng của mình như:
Tạo chức năng Transfer_funds2 () trả về void dưới dạng $$
Lưu ý rằng việc sử dụngthử
/ngoại trừ
vẫn được yêu cầu. Nếu không, ngoại lệ sẽ lan truyền lên đỉnh của ngăn xếp Python và sẽ khiến toàn bộ chức năng hủy bỏ vớiPostgreSQLLỗi, đểHoạt động
Bảng sẽ không có bất kỳ hàng nào được chèn vào nó. Trình quản lý ngữ cảnh Subtransaction không bẫy các lỗi, nó chỉ đảm bảo rằng tất cả các hoạt động cơ sở dữ tỷ lệ kèo bóng đá 88 được thực thi trong phạm vi của nó sẽ được cam kết hoặc quay lại nguyên tử.
Cú pháp người quản lý ngữ cảnh bằng cách sử dụngvới
Từ khóa có sẵn theo mặc định trong Python 2.6. Để tương thích với tỷ lệ kèo bóng đá 88 phiên bản Python cũ hơn, bạn có thể gọi Trình quản lý phụ__enter__
và__exit__
tỷ lệ kèo bóng đá 88 chức năng bằng cách sử dụngEnter
vàThoát
Bí danh tiện lợi. Hàm ví dụ chuyển tiền có thể được viết là:
Tạo chức năng Transfer_funds_old () trả về void dưới dạng $$
Nếu bạn thấy bất cứ điều gì trong tài tỷ lệ kèo bóng đá 88 không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài tỷ lệ kèo bóng đá 88.