Cả hai cấp độ phân lập đọc và kèo chấp bóng đá hôm nay có thể lặp lại có thể tạo ra các lỗi được thiết kế để ngăn chặn các bất thường kèo chấp bóng đá hôm nay. Như đã nêu trước đây, các ứng dụng sử dụng các cấp độ này phải được chuẩn bị để thử lại các giao dịch không thành công do lỗi kèo chấp bóng đá hôm nay.40001
(serialization_failure
).
Nó cũng có thể được khuyến khích để thử lại các kèo chấp bóng đá hôm nay. Chúng có mã SQLSTATE40p01
(hoadlock_detected
).
Trong một số trường hợp, nó cũng phù hợp để thử lại các lỗi duy nhất, có mã SQLSTATE23505
(độc đáo_violation
) và lỗi ràng buộc loại trừ, có mã SQLSTATE23p01
(Exclusion_Violation
). Ví dụ: nếu ứng dụng chọn một giá trị mới cho cột khóa chính sau khi kiểm tra các khóa hiện được lưu trữ, nó có thể bị lỗi khóa duy nhất vì một trường hợp ứng dụng khác đã chọn cùng một khóa mới đồng thời.HồixemxôngKết nối giữa giá trị được chèn và các lần đọc trước đó. Ngoài ra còn có một số trường hợp góc trong đó máy chủ sẽ đưa ra lỗi ràng buộc duy nhất hoặc loại trừ mặc dù về nguyên tắc, nó có đủ thông tin để xác định rằng vấn đề kèo chấp bóng đá hôm nay là nguyên nhân cơ bản.serialization_failure
8485_8657
Điều quan trọng là phải thử lại giao dịch hoàn chỉnh, bao gồm tất cả logic quyết định SQL sẽ phát hành và/hoặc giá trị nào sẽ sử dụng. Vì thế,PostgreSQLKhông cung cấp một cơ sở thử lại tự động, vì nó không thể làm như vậy với bất kỳ sự đảm bảo nào về tính chính xác.
Thử lại giao dịch không đảm bảo rằng giao dịch được thử lại sẽ hoàn tất; Nhiều lần thử lại có thể cần thiết.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.