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

61.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 các ràng buộc duy nhất SQL bằng cách sử dụngChỉ tỷ lệ kèo bóng đá trực tuyến hôm nay duy nhất, là các 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 các khóa giống hệt nhau. Phương thức truy cập hỗ trợ các bộ tính năng nàyAmcanuniqueĐúng. (Hiện tại, chỉ có B-Tree hỗ trợ nó.) Các cột được liệt kê trongBao gồmmệnh đề không được xem xét khi thực thi tỷ lệ kèo bóng đá trực tuyến hôm nay nhất.

Vì MVCC, luôn luôn cần phải cho phép các tỷ lệ kèo bóng đá trực tuyến hôm nay trùng lặp tồn tại 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 các phiên bản liên tiếp của một hàng logic duy nhất. Hành vi mà 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 chia thành các trường hợp sau đây 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 duy nhất:

  • Nếu một hàng hợp lệ mâu thuẫn đã bị xóa bởi giao dịch hiện tại, thì không sao. .

  • Nếu một hàng mâu thuẫn đã được chèn bởi một giao dịch chưa được cam kết, thì người sẽ phải chờ xem giao dịch đó có cam kết không. Nếu nó quay trở lại thì không có xung đột. Nếu nó cam kết mà không xóa hàng mâu thuẫn một lần nữa, có một vi phạm độc đáo. (Trong thực tế, chúng tôi chỉ chờ giao dịch khác kết thúc và sau đó làm lại tỷ lệ kèo bóng đá trực tuyến hôm nay khả năng hiển thị trong toto.)

  • 11849_12042

Hơn nữa, ngay trước khi báo cáo vi phạm tính độc đáo Theo các quy tắc trên, phương thức truy cập phải 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 có vi phạm nên được báo cáo. .Tạo chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay duy nhất đồng thời, tuy nhiên.)

12537_13138

Nếu ràng buộc duy nhất là có thể trì hoãn, có sự phức tạp bổ sung: chúng ta cần có thể chèn một 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 cho một hàng mới, nhưng trì hoãn mọi lỗi vi phạm duy nhất cho đến khi kết thúc câu lệnh hoặc thậm chí sau này. Để tránh các tìm kiếm lặp lại không cần thiết của chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay, phương pháp truy cập chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay sẽ thực hiện kiểm tra tính duy nhất sơ bộ trong quá trình chèn ban đầu. Nếu điều này cho thấy rằng chắc chắn không có tuple trực tiếp mâu thuẫn, chúng tôi đã hoàn thành. Mặt khác, chúng tôi lên lịch kiểm tra lại để xảy ra khi đến lúc thực thi các ràng buộc. Nếu, tại thời điểm kiểm tra lại, cả bộ tuple được chèn và một số tuple khác có cùng một khóa đều trực tiếp, thì phải báo cáo lỗi. (Lưu ý rằng với tỷ lệ kèo bóng đá trực tuyến hôm nay đích này,Livethực sự có nghĩa làHồiBất kỳ tuple trong chuỗi nóng của 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 là trực tiếpHàng.) Để 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_no14363_14448

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

  • độc đáo_check_partialcho biết ràng buộc duy nhất là có thể thu hồi được.PostgreSQLSẽ sử dụng chế độ này để chèn vào 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 mỗi 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ả về false từAminsert. Đối với mỗi hàng giả được trả lại, một lần tỷ lệ kèo bóng đá trực tuyến hôm nay lại sẽ được lên lịch.

    15185_15536

  • độc đáo_check_existingchỉ ra rằng đây là một việc 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à vi phạm độc đáo tiềm năng. Mặc dù điều này được thực hiện bằng cách gọiAminsert, Phương thức truy cập phảikhôngChèn một 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 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ó 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 trực tiếp khác không. Nếu vậy, và nếu hàng đích cũng vẫn còn tồn tại, lỗi báo cáo.

    16128_1615816178_16201Gọi, phương thức truy cập xác minh thêm rằng hàng đích thực sự có một tỷ lệ kèo bóng đá trực tuyến hôm nay nhập hiện có trong 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 ý tưởng tốt bởi vì các giá trị Tuple Index được chuyển choAminsertsẽ được tính toán lại. Nếu định nghĩa chỉ số liên quan đến các chức năng không thực sự bất biến, chúng ta có thể kiểm tra sai khu vực của chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay. Kiểm tra xem hàng đích được tìm thấy trong phần kiểm tra lại xác minh rằng chúng tôi đang quét các giá trị tuple giống như được sử dụng trong chèn ban đầu.

Gửi hiệu chỉnh

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ớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.