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
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiệ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ế.

22.2. Hỗ trợ đối tỷ lệ kèo bóng đá tối nay

Tính năng đối tỷ lệ kèo bóng đá tối nay cho phép chỉ định thứ tự sắp xếp và Hành vi phân loại nhân vật của dữ liệu trên mỗi cột hoặc thậm chí hoạt động. Điều này làm giảm bớt hạn chế rằnglc_collatelc_ctypeCài đặt của cơ sở dữ liệu không thể thay đổi sau khi tạo.

22.2.1. Các khái niệm

Về mặt khái niệm, mọi biểu thức của kiểu dữ liệu có hàm lượng có đối tỷ lệ kèo bóng đá tối nay. (Các kiểu dữ liệu có chứa có thể tích hợp làText, Varcharchar. Các loại cơ sở do người dùng định nghĩa cũng có thể được đánh dấu có thể có được, và tất nhiên là một tên miền trên một loại dữ liệu có thể lấy được có thể có được.) Nếu biểu thức là tham tỷ lệ kèo bóng đá tối nay cột, đối tỷ lệ kèo bóng đá tối nay của biểu thức là sự đối tỷ lệ kèo bóng đá tối nay xác định của cột. Nếu Biểu thức là một hằng số, đối tỷ lệ kèo bóng đá tối nay là đối tỷ lệ kèo bóng đá tối nay mặc định của loại dữ liệu của hằng số. Sự đối tỷ lệ kèo bóng đá tối nay của một phức tạp hơn Biểu thức có nguồn gốc từ các đối tỷ lệ kèo bóng đá tối nay của các đầu vào của nó, như được mô tả bên dưới.

đối tỷ lệ kèo bóng đá tối nay của một biểu thức có thể là"Mặc định"đối tỷ lệ kèo bóng đá tối nay, có nghĩa là cài đặt địa phương được xác định cho cơ sở dữ liệu. Nó cũng có thể cho một biểu thức đối tỷ lệ kèo bóng đá tối nay để được xác định không xác định. Trong những trường hợp như vậy, các hoạt động đặt hàng và các hoạt động khác cần biết đối tỷ lệ kèo bóng đá tối nay sẽ thất bại.

Khi hệ thống cơ sở dữ liệu phải thực hiện đơn đặt hàng hoặc A Phân loại ký tự, nó sử dụng sự đối tỷ lệ kèo bóng đá tối nay của đầu vào sự biểu lộ. Điều này xảy ra, ví dụ, vớiĐặt hàng bởiCác điều khoản và chức năng hoặc các cuộc gọi toán tử như vậy BẰNG<. Đối tỷ lệ kèo bóng đá tối nay để áp dụng cho mộtĐặt hàng bởimệnh đề chỉ đơn giản là sự đối tỷ lệ kèo bóng đá tối nay của Khóa sắp xếp. Đối tỷ lệ kèo bóng đá tối nay để áp dụng cho một chức năng hoặc toán tử Cuộc gọi có nguồn gốc từ các đối số, như được mô tả dưới đây. Ngoài ra Để so sánh các toán tử, các đối tỷ lệ kèo bóng đá tối nay được tính đến bởi các chức năng chuyển đổi giữa các chữ cái dưới và trên, như vậy BẰNGHạ, trêninitCap; bằng cách kết hợp các toán tử phù hợp với mẫu; và bởito_charvà các chức năng liên quan.

Đối với một cuộc gọi chức năng hoặc toán tử, đối tỷ lệ kèo bóng đá tối nay có nguồn gốc từ bằng cách kiểm tra các đối số đối số được sử dụng tại thời điểm chạy thực hiện hoạt động được chỉ định. Nếu kết quả của hàm hoặc cuộc gọi của người vận hành là một loại dữ liệu có kết hợp, đối tỷ lệ kèo bóng đá tối nay là cũng được sử dụng vào thời gian phân tích. làm đối tỷ lệ kèo bóng đá tối nay xác định của hàm hoặc biểu thức vận hành, trong trường hợp có một biểu thức xung quanh mà yêu cầu kiến ​​thức về đối tỷ lệ kèo bóng đá tối nay của nó.

TheĐạo hàm đối tỷ lệ kèo bóng đá tối nay11533_11742đối tỷ lệ kèo bóng đá tối naymệnh đề được sử dụng; Tất cả khác Các dẫn xuất đối tỷ lệ kèo bóng đá tối nay là tiềm ẩn. Khi nhiều đối thủ cần Ví dụ, được kết hợp trong một cuộc gọi chức năng, các quy tắc sau được sử dụng:

  1. Nếu bất kỳ biểu thức đầu vào nào có đạo hàm đối tỷ lệ kèo bóng đá tối nay rõ ràng, Sau đó, tất cả các đối tỷ lệ kèo bóng đá tối nay có nguồn gốc rõ ràng giữa các biểu thức đầu vào Phải giống nhau, nếu không một lỗi được nêu ra. Nếu bất kỳ rõ ràng đối tỷ lệ kèo bóng đá tối nay có nguồn gốc, đó là kết quả của sự đối tỷ lệ kèo bóng đá tối nay sự kết hợp.

  2. Nếu không, tất cả các biểu thức đầu vào phải có cùng một ẩn Đạo hàm đối tỷ lệ kèo bóng đá tối nay hoặc đối tỷ lệ kèo bóng đá tối nay mặc định. Nếu có bất kỳ mặc định đối tỷ lệ kèo bóng đá tối nay có mặt, đó là kết quả của sự đối tỷ lệ kèo bóng đá tối nay sự kết hợp. Nếu không, kết quả là đối tỷ lệ kèo bóng đá tối nay mặc định.

  3. 12525_12854

Ví dụ, hãy xem xét định nghĩa bảng này:

Tạo bảng Test1 (
    một văn bản đối tỷ lệ kèo bóng đá tối nay "de_de",
    B văn bản đối tỷ lệ kèo bóng đá tối nay "es_es",
    ...
);

Sau đó trong

Chọn <'foo' từ Test1;

The<So sánh được thực hiện Theode_deQuy tắc, vì Biểu thức kết hợp một sự đối tỷ lệ kèo bóng đá tối nay có nguồn gốc ngầm với đối tỷ lệ kèo bóng đá tối nay mặc định. Nhưng trong

Chọn <('foo' đối tỷ lệ kèo bóng đá tối nay "FR_FR") từ Test1;

So sánh được thực hiện bằng cách sử dụngFR_FRQuy tắc, vì đạo hàm đối tỷ lệ kèo bóng đá tối nay rõ ràng ghi đè lên ngầm. Hơn nữa, đã cho

Chọn A <B từ Test1;

Trình phân tích cú pháp không thể xác định đối tỷ lệ kèo bóng đá tối nay nào sẽ áp dụng, vìABCác cột có các đối tỷ lệ kèo bóng đá tối nay ngầm mâu thuẫn. Kể từ<Nhà điều hành không cần biết đối tỷ lệ kèo bóng đá tối nay nào Sử dụng, điều này sẽ dẫn đến một lỗi. Lỗi có thể được giải quyết bằng gắn một bộ xác định đối tỷ lệ kèo bóng đá tối nay rõ ràng vào đầu vào biểu thức, do đó:

Chọn A <B Collate "DE_DE" từ Test1;

hoặc tương đương

Chọn một đối tỷ lệ kèo bóng đá tối nay "de_de" <b từ test1;

14248_14298

Chọn A || B từ Test1;

không dẫn đến lỗi, vì||Nhà điều hành không quan tâm đến các đối tỷ lệ kèo bóng đá tối nay: nó Kết quả là giống nhau bất kể đối tỷ lệ kèo bóng đá tối nay.

Trụ đồng được gán cho chức năng hoặc người vận hành kết hợp Biểu thức đầu vào cũng được coi là áp dụng cho chức năng hoặc Kết quả của người vận hành, nếu chức năng hoặc toán tử cung cấp kết quả của một loại dữ liệu có thể có được. Vì vậy, trong

Chọn * Từ đơn đặt hàng Test1 của A || 'foo';

Đặt hàng sẽ được thực hiện theode_deQuy tắc. Nhưng truy vấn này:

Chọn * Từ Đơn hàng Test1 của A || B;

dẫn đến lỗi, vì mặc dù||Nhà điều hành không cần biết đối tỷ lệ kèo bóng đá tối nay,Đặt hàng bởimệnh đề không. Như trước đây, Xung đột có thể được giải quyết với trình xác định đối tỷ lệ kèo bóng đá tối nay rõ ràng:

Chọn * Từ đơn đặt hàng Test1 của A || B đối tỷ lệ kèo bóng đá tối nay "FR_FR";

22.2.2. Quản lý Đối tỷ lệ kèo bóng đá tối nay

Một đối tỷ lệ kèo bóng đá tối nay là một đối tượng Lược đồ SQL ánh xạ tên SQL thành địa phương hệ điều hành. Cụ thể, nó ánh xạ vào một sự kết hợp củaLC_Collatelc_ctype. (Như tên sẽ đề xuất, chính Mục đích của một đối tỷ lệ kèo bóng đá tối nay là đặtlc_collate, kiểm soát thứ tự sắp xếp. Nhưng nó là hiếm khi cần thiết trong thực tế để có mộtlc_ctypeCài đặt khác vớilc_collate, vì vậy sẽ thuận tiện hơn khi thu thập những thứ này theo một khái niệm hơn là tạo cơ sở hạ tầng khác để thiết lậplc_ctypemỗi biểu thức.) Ngoài ra, một đối tỷ lệ kèo bóng đá tối nay được gắn với một bộ mã hóa bộ ký tự (xemPhần 22.3). Cùng một tên đối tỷ lệ kèo bóng đá tối nay có thể tồn tại cho các mã hóa khác nhau.

16293_16334Mặc định, CPOSIXcó sẵn. Các đối tỷ lệ kèo bóng đá tối nay bổ sung có thể là Có sẵn tùy thuộc vào hỗ trợ hệ điều hành. Themặc địnhđối tỷ lệ kèo bóng đá tối nay chọnlc_collatelc_ctypeGiá trị được chỉ định tại thời gian tạo cơ sở dữ liệu. TheCPOSIXBộ sưu tập cả hai chỉ định"truyền thống C"Hành vi, trong mà chỉ các chữ cái ASCII"A"qua"Z"được coi là chữ cái và sắp xếp là hoàn thành nghiêm ngặt theo giá trị byte mã ký tự.

Nếu hệ điều hành cung cấp hỗ trợ sử dụng nhiều Các địa phương trong một chương trình duy nhất (Newlocalevà các chức năng liên quan), sau đó khi a Cụm cơ sở dữ liệu được khởi tạo,17313_17321điền vào danh mục hệ thốngpg_collationVới các đối tỷ lệ kèo bóng đá tối nay dựa trên tất cả các địa phương mà nó tìm thấy trên hoạt động hệ thống tại thời điểm đó. Ví dụ: hệ điều hành có thể cung cấp một địa phương có tênde_de.utf8. initDBSau đó sẽ tạo một đối tỷ lệ kèo bóng đá tối nay có tênde_de.utf8để mã hóaUTF8có cả hailc_collatelc_ctypeĐặt ĐẾNde_de.utf8. Nó cũng sẽ tạo ra một đối tỷ lệ kèo bóng đá tối nay với.UTF8Tag bị tước tên. Vì vậy, bạn cũng có thể sử dụng đối tỷ lệ kèo bóng đá tối nay dưới tênde_de, ít cồng kềnh hơn để viết và làm cho tên ít phụ thuộc vào mã hóa. Lưu ý rằng, Tuy nhiên, bộ đối tỷ lệ kèo bóng đá tối nay ban đầu là phụ thuộc vào nền tảng.

Trong trường hợp cần đối tỷ lệ kèo bóng đá tối nay có các giá trị khác nhau choLC_Collatelc_ctype, Một đối tỷ lệ kèo bóng đá tối nay mới có thể được tạo bằng cách sử dụngPostgreSQL: Tài liệu: 9.3: Tạo đối18439_18634

Trong bất kỳ cơ sở dữ liệu cụ thể nào, chỉ các đối tỷ lệ kèo bóng đá tối nay sử dụng đó Mã hóa cơ sở dữ liệu được quan tâm. Các mục khác trongpg_collationbị bỏ qua. Do đó, một sự đối tỷ lệ kèo bóng đá tối nay bị tước Tên nhưde_decó thể được xem xét duy nhất trong một cơ sở dữ liệu nhất định mặc dù nó sẽ không phải là duy nhất trên toàn cầu. Nên sử dụng các tên đối tỷ lệ kèo bóng đá tối nay bị tước, vì nó sẽ làm cho một điều bạn cần thay đổi ít hơn nếu bạn quyết định Thay đổi sang mã hóa cơ sở dữ liệu khác. Tuy nhiên, lưu ý rằngmặc định, C19214_19222POSIXđối tỷ lệ kèo bóng đá tối nay có thể được sử dụng bất kể mã hóa cơ sở dữ liệu.

PostgreSQL19361_19479

Chọn một đối tỷ lệ kèo bóng đá tối nay "C" <b đối tỷ lệ kèo bóng đá tối nay "POSIX" từ Test1;

sẽ rút lỗi mặc dùCPosixCollations có giống hệt nhau hành vi. Trộn các tên đối tỷ lệ kèo bóng đá tối nay bị tước và không sọc là do đó không được khuyến nghị.