Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
8896_8952hiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

54,5. Chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay kiểm tra tính duy nhất

PostgreSQLThực thi SQL Các ràng buộc tính độc đáo bằng cách sử dụngĐộc đáo chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay, là những chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay không cho phép nhiều tỷ lệ kèo bóng đá trực tuyến hôm nay với Khóa giống hệt nhau. Phương thức truy cập hỗ trợ các bộ tính năng nàypg_am.AmcanuniqueĐúng. (Hiện tại, chỉ có B-Tree hỗ trợ nó.)

Vì MVCC, luôn cần phải cho phép trùng lặp Các tỷ lệ kèo bóng đá trực tuyến hôm nay nhập tồn tại về mặt vật lý trong một chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay: các tỷ lệ kèo bóng đá trực tuyến hôm nay có thể đề cập đến Phiên bản liên tiếp của một hàng logic duy nhất. Hành vi chúng tôi thực sự muốn thực thi là không có ảnh chụp nhanh MVCC nào có thể bao gồm hai Hàng có khóa chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay bằng nhau. Điều này bị phá vỡ vào những điều sau Các trường hợp phải được kiểm tra khi chèn một hàng mới vào một Chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay:

  • Nếu một hàng hợp lệ xung đột đã bị xóa bởi hiện tại Giao dịch, không sao cả. (Đặc biệt, vì bản cập nhật luôn luôn Xóa phiên bản hàng cũ trước khi chèn phiên bản mới, cái này sẽ cho phép cập nhật trên một hàng mà không cần thay đổi khóa.)

  • 11154_11539

  • Tương tự, nếu một hàng hợp lệ xung đột đã bị xóa bởi một giao dịch khi được cam kết, mà người đưa vào phải chờ giao dịch đó để cam kết hoặc hủy bỏ, sau đó lặp lại bài kiểm tỷ lệ kèo bóng đá trực tuyến hôm nay.

Hơn nữa, ngay trước khi báo cáo vi phạm độc đáo Theo các quy tắc trên, phương thức truy cập phải kiểm tỷ lệ kèo bóng đá trực tuyến hôm nay lại khả năng sống của hàng được chèn. Nếu nó được cam kết đã chết thì không vi phạm nên được báo cáo. (Trường hợp này không thể xảy ra trong Kịch bản thông thường là chèn một hàng vừa được tạo ra bởi giao dịch hiện tại. Nó có thể xảy ra trongTạo chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay duy nhất đồng thời, tuy nhiên.)

Chúng tôi yêu cầu phương thức truy cập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay để áp dụng các thử nghiệm này, điều đó có nghĩa là nó phải chạm vào đống để kiểm tra cam kết trạng thái của bất kỳ hàng nào được hiển thị có khóa trùng lặp theo đến nội dung chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay. Điều này chắc chắn là xấu xí và không mô-đun, nhưng nó tiết kiệm công việc dư thừa: nếu chúng ta làm riêng thăm dò sau đó tìm kiếm chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay cho một hàng mâu thuẫn sẽ là về cơ bản lặp đi lặp lại trong khi tìm nơi chèn tỷ lệ kèo bóng đá trực tuyến hôm nay nhập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay của hàng. Hơn nữa, không có cách nào rõ ràng để tránh điều kiện chủng tộc trừ khi kiểm tra xung đột là một phần không thể thiếu của Lắp tỷ lệ kèo bóng đá trực tuyến hôm nay nhập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay mới.

12825_13514"Live"thực sự có nghĩa là"Bất kỳ tuple nào trong chuỗi nóng của tỷ lệ kèo bóng đá trực tuyến hôm nay chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay là trực tiếp".) Để thực hiện điều này,AminsertHàm được truyền ACheckuniqueTham số Có một trong các giá trị sau:

  • độc đáo_check_nochỉ ra rằng không Kiểm tra tính độc đáo nên được thực hiện (đây không phải là một chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay).

  • độc đáo_check_yescho biết đây là Một chỉ số duy nhất không thể thực hiện được và tỷ lệ kèo bóng đá trực tuyến hôm nay duy nhất phải là thực hiện ngay lập tức, như được mô tả ở trên.

  • độc đáo_check_partialchỉ ra rằng Ràng buộc duy nhất là có thể bảo vệ.PostgreSQLSẽ sử dụng chế độ này để chèn từng tỷ lệ kèo bóng đá trực tuyến hôm nay nhập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay của hàng. Phương thức truy cập phải cho phép các tỷ lệ kèo bóng đá trực tuyến hôm nay trùng lặp vào chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay và báo cáo bất kỳ bản sao tiềm năng nào bằng cách trả lại Sai từAminsert. Cho mỗi hàng cho Sai được trả lại, một kiểm tỷ lệ kèo bóng đá trực tuyến hôm nay lại trì hoãn sẽ được lên lịch.

    Phương thức truy cập phải xác định bất kỳ hàng nào có thể vi phạm Ràng buộc duy nhất, nhưng nó không phải là lỗi để báo cáo sai Tích cực. Điều này cho phép kiểm tỷ lệ kèo bóng đá trực tuyến hôm nay được thực hiện mà không cần chờ đợi các giao dịch khác để hoàn thành; xung đột được báo cáo ở đây không được coi là lỗi và sẽ được kiểm tỷ lệ kèo bóng đá trực tuyến hôm nay lại sau đó, vào thời điểm đó họ có thể không còn là xung đột nữa.

  • độc đáo_check_existingchỉ ra rằng Đây là một việc kiểm tỷ lệ kèo bóng đá trực tuyến hôm nay lại một hàng được báo cáo là một vi phạm độc đáo tiềm năng. Mặc dù điều này được thực hiện bởi GọiAminsert, Phương thức truy cập phảikhôngChèn một cái mới tỷ lệ kèo bóng đá trực tuyến hôm nay nhập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay trong trường hợp này. tỷ lệ kèo bóng đá trực tuyến hôm nay nhập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay đã có mặt. Thay vào đó, phương thức truy cập phải kiểm tra xem có không Nhập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay trực tiếp. Nếu vậy, và nếu hàng đích cũng vẫn còn sống, Báo cáo lỗi.

    khuyến nghị rằng trong Ađộc đáo_check_existinggọi, phương thức truy cập xác minh thêm rằng hàng tỷ lệ kèo bóng đá trực tuyến hôm nay tiêu thực sự có Nhập vào chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay, và báo cáo lỗi nếu không. Đây là một ý kiến ​​hay Bởi vì các giá trị Tuple Index được truyền đếnAminsert15806_16108