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 / 8.0 / 7.4

36.2. ThePostgreSQLkèo bóng đá hom nay hệ thống#

PostgreSQLCác kèo bóng đá hom nay dữ liệu có thể được chia thành các kèo bóng đá hom nay cơ sở, kèo bóng đá hom nay container, miền và kèo bóng đá hom nay giả.

36.2.1. Các kèo bóng đá hom nay cơ sở#

Các kèo bóng đá hom nay cơ sở là những kèo bóng đá hom nay, nhưSố nguyên, được thực hiện dưới mức củaSQLNgôn ngữ (thường bằng ngôn ngữ cấp thấp như C). Chúng thường tương ứng với những gì thường được gọi là các kèo bóng đá hom nay dữ liệu trừu tượng.PostgreSQLChỉ có thể hoạt động trên các kèo bóng đá hom nay đó thông qua các chức năng do người dùng cung cấp và chỉ hiểu hành vi của các kèo bóng đá hom nay đó trong phạm vi mà người dùng mô tả chúng. Các kèo bóng đá hom nay cơ sở tích hợp được mô tả trongChương 8.

Các kèo bóng đá hom nay được liệt kê (enum) có thể được coi là một tiểu thể kèo bóng đá hom nay của các kèo bóng đá hom nay cơ sở. Sự khác biệt chính là chúng có thể được tạo bằng cách sử dụngSQLCác lệnh, không có bất kỳ chương trình cấp thấp nào. Tham khảoPhần 8.7Để biết thêm thông tin.

36.2.2. kèo bóng đá hom nay container#

PostgreSQLCó ba kèo bóng đá hom naycontainerHồiCác kèo bóng đá hom nay, là các kèo bóng đá hom nay chứa nhiều giá trị của các kèo bóng đá hom nay khác. Đây là các mảng, vật liệu tổng hợp và phạm vi.

13601_13919Phần 8.15Để biết thêm thông tin.

14033_14140PostgreSQL: Tài liệu:Để xác định AHồiđộc lập14331_14520Phần 8.16Để biết thêm thông tin.

Một kèo bóng đá hom nay phạm vi có thể chứa hai giá trị cùng kèo bóng đá hom nay, là giới hạn dưới và trên của phạm vi. Các kèo bóng đá hom nay phạm vi được tạo ra, mặc dù một vài kèo bóng đá hom nay tích hợp tồn tại. Tham khảoPhần 8.17Để biết thêm thông tin.

36.2.3. Miền#

Một miền dựa trên một kèo bóng đá hom nay cơ bản cụ thể và cho nhiều mục đích có thể hoán đổi với kèo bóng đá hom nay cơ bản. Tuy nhiên, một miền có thể có các ràng buộc hạn chế các giá trị hợp lệ của nó đối với một tập hợp con của kèo bóng đá hom nay cơ bản sẽ cho phép. Miền được tạo bằng cách sử dụngSQL15525_15536Tạo tên miền. Tham khảoPhần 8.18Để biết thêm thông tin.

36.2.4. Pseudo-Types#

Có một vàiPseudo-TypesKhăn16144_16418Bảng 8.2716549_16584

36.2.5. Các kèo bóng đá hom nay đa hình#

Một số kèo bóng đá hom nay giả quan tâm đặc biệt làCác kèo bóng đá hom nay đa hình, được sử dụng để khai báoChức năng đa hình. Tính năng mạnh mẽ này cho phép một định nghĩa hàm duy nhất hoạt động trên nhiều kèo bóng đá hom nay dữ liệu khác nhau, với (các) kèo bóng đá hom nay dữ liệu cụ thể được xác định bởi các kèo bóng đá hom nay dữ liệu thực sự được truyền cho nó trong một cuộc gọi cụ thể. Các kèo bóng đá hom nay đa hình được thể hiện trongBảng 36.117703_17744Phần 36.5.11.

Bảng 36.1. Các kèo bóng đá hom nay đa hình

tên Gia đình Mô tả
AnyEuity đơn giản Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu nào
AnyArray đơn giản Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu mảng nào
Anynonarray đơn giản Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu không phải nào
Anyenum đơn giản Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu enum nào (xemPhần 8.7)
Anyrange đơn giản Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu phạm vi nào (xemPhần 8.17)
Anymultirange đơn giản Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu đa dạng nào (xemPhần 8.17)
AnyCompitiated phổ biến Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu nào, với việc tự động quảng bá nhiều đối số lên kèo bóng đá hom nay dữ liệu chung
AnycompatiBleArray Common Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu mảng nào, với tự động quảng bá nhiều đối số lên kèo bóng đá hom nay dữ liệu chung
AnycompatiblenonArray Common 20659_20788
AnycompatiBlerange Common Cho biết rằng một hàm chấp nhận bất kỳ kèo bóng đá hom nay dữ liệu phạm vi nào, với tự động quảng bá nhiều đối số lên kèo bóng đá hom nay dữ liệu chung
21144_21169 Common 21228_21358

Các đối số và kết quả đa hình được gắn với nhau và được giải quyết với các kèo bóng đá hom nay dữ liệu cụ thể khi một truy vấn gọi hàm đa hình được phân tích cú pháp. Khi có nhiều hơn một đối số đa hình, các kèo bóng đá hom nay dữ liệu thực tế của các giá trị đầu vào phải khớp với mô tả dưới đây. Nếu kèo bóng đá hom nay kết quả của hàm là đa hình hoặc nó có các tham số đầu ra của các kèo bóng đá hom nay đa hình, các kèo bóng đá hom nay kết quả đó được suy ra từ các kèo bóng đá hom nay thực tế của các đầu vào đa hình như được mô tả dưới đây.

chođơn giảnhọ các kèo bóng đá hom nay đa hình, các quy tắc phù hợp và suy luận hoạt động như thế này:

Mỗi vị trí (đối số hoặc giá trị trả về) được khai báo làAnyEuityđược phép có bất kỳ kèo bóng đá hom nay dữ liệu thực tế cụ thể nào, nhưng trong bất kỳ cuộc gọi nào, tất cả đều phải làcùngkèo bóng đá hom nay thực tế. Mỗi vị trí được khai báo làAnyArrayCó thể có bất kỳ kèo bóng đá hom nay dữ liệu mảng nào, nhưng tương tự tất cả chúng phải cùng kèo bóng đá hom nay. Và tương tự, các vị trí được khai báo làAnyrangeTất cả phải là cùng kèo bóng đá hom nay phạm vi. Tương tự như vậy choAnymultirange.

Hơn nữa, nếu có các vị trí được tuyên bốAnyArrayvà những người khác được tuyên bốAnyEuity, kèo bóng đá hom nay mảng thực tế trongAnyArrayVị trí phải là một mảng có các phần tử là cùng kèo bóng đá hom nay xuất hiện trongAnyEuityVị trí.Anynonarrayđược xử lý giống hệt nhưAnyEuity, nhưng thêm ràng buộc bổ sung rằng kèo bóng đá hom nay thực tế không phải là kèo bóng đá hom nay mảng.Anyenumđược đối xử giống hệt nhưAnyEuity, nhưng thêm ràng buộc bổ sung rằng kèo bóng đá hom nay thực tế phải là kèo bóng đá hom nay enum.

Tương tự, nếu có các vị trí được khai báoAnyrangevà những người khác được tuyên bốAnyEuityhoặcAnyArray, kèo bóng đá hom nay phạm vi thực tế trongAnyrangeVị trí phải là một phạm vi có kiểu con là cùng kèo bóng đá hom nay xuất hiện trongAnyEuityVị trí và giống như kèo bóng đá hom nay phần tử củaAnyArrayVị trí. Nếu có các vị trí được khai báoAnymultirangeAnyrangevà các phần tử cơ sở phù hợp với các tham số được khai báoAnyEuityAnyArray.

Do đó, khi có nhiều hơn một vị trí đối số được khai báo với kèo bóng đá hom nay đa hình, hiệu ứng ròng là chỉ được phép kết hợp một số kèo bóng đá hom nay đối số thực tế. Ví dụ: một hàm được khai báo làbằng (AnyEuity, AnyEuity)sẽ lấy bất kỳ hai giá trị đầu vào nào, miễn là chúng thuộc cùng một kèo bóng đá hom nay dữ liệu.

Khi giá trị trả về của hàm được khai báo là kèo bóng đá hom nay đa hình, phải có ít nhất một vị trí đối số cũng có tính đa hình và kèo bóng đá hom nay dữ liệu thực tế được cung cấp cho các đối số đa hình xác định kèo bóng đá hom nay kết quả thực tế cho cuộc gọi đó. Ví dụ: nếu chưa có cơ chế đăng ký mảng, người ta có thể xác định một hàm thực hiện đăng ký làĐăng ký (AnyArray, Integer) trả về AnyEuity24967_25187f (AnyArray) trả về AnyenumSẽ chỉ chấp nhận các mảng của các kèo bóng đá hom nay enum.

Trong hầu hết các trường hợp, trình phân tích cú pháp có thể suy ra kèo bóng đá hom nay dữ liệu thực tế cho kèo bóng đá hom nay kết quả đa hình từ các đối số thuộc kèo bóng đá hom nay đa hình khác nhau trong cùng một họ; Ví dụAnyArraycó thể được suy luận từAnyEuityhoặc ngược lại. Một ngoại lệ là kết quả đa hình của kèo bóng đá hom nayAnyrangeYêu cầu đối số kèo bóng đá hom nayAnyrange; nó không thể được suy luận từAnyArrayhoặcAnyEuityĐối số. Điều này là do có thể có nhiều kèo bóng đá hom nay phạm vi với cùng một kèo bóng đá hom nay phụ.

Lưu ý rằngAnynonarrayAnyenum26007_26078AnyEuity, chỉ với một ràng buộc bổ sung. Ví dụ: khai báo một hàm làf (AnyEuity, Anyenum)tương đương với việc khai báo nó làf (Anyenum, Anyenum): Cả hai đối số thực tế phải là cùng kèo bóng đá hom nay enum.

choCommonHồihọ các kèo bóng đá hom nay đa hình, các quy tắc phù hợp và suy luận hoạt động xấp xỉ như đối vớiđơn giảnVoigia đình, với một sự khác biệt lớn: các kèo bóng đá hom nay thực tế của các đối số không cần phải giống hệt nhau, miễn là chúng có thể được sử dụng một cách ngầm định một kèo bóng đá hom nay phổ biến. kèo bóng đá hom nay phổ biến được chọn theo các quy tắc tương tự như đối vớiUnionvà các cấu trúc liên quan (xemPhần 10.5). Lựa chọn kèo bóng đá hom nay phổ biến xem xét các kèo bóng đá hom nay thực tế của27105_27120AnycompatiblenonarrayĐầu vào, các kèo bóng đá hom nay phần tử mảng củaAnycompatiBleArrayĐầu vào, các phân nhóm phạm vi củaAnycompatiBlerangeĐầu vào và các kiểu con đa năng củaAnycompatiSlapsultirange27421_27435AnycompatiblenonArrayCó mặt thì kèo bóng đá hom nay phổ biến được yêu cầu là kèo bóng đá hom nay không phải là một kèo bóng đá hom nay. Khi một kèo bóng đá hom nay chung được xác định, các đối số trongAnyCompitiatedAnycompatiblenonarrayVị trí được tự động chuyển theo kèo bóng đá hom nay đó và đối số trongAnycompatiBleArrayVị trí được tự động chuyển vào kèo bóng đá hom nay mảng cho kèo bóng đá hom nay đó.

Vì không có cách nào để chọn một kèo bóng đá hom nay phạm vi chỉ biết phân nhóm của nó, sử dụngAnycompatiBlerangevà/hoặcAnycompatiSlapsultirangeYêu cầu tất cả các đối số được khai báo với kèo bóng đá hom nay đó có cùng phạm vi thực tế và/hoặc kèo bóng đá hom nay đa dạng và kèo bóng đá hom nay phụ của kèo bóng đá hom nay đó đồng ý với kèo bóng đá hom nay chung được chọn, để không cần sử dụng các giá trị phạm vi. Như vớiAnyrangeAnymultirange, Sử dụngAnycompatiBlerangeAnymultirangeLà kèo bóng đá hom nay kết quả hàm yêu cầu cóAnycompatiBlerangehoặcAnycompatiSlapsultirangeĐối số.

Lưu ý rằng không cóAnycompatibleEnumkèo bóng đá hom nay. Một kèo bóng đá hom nay như vậy sẽ không hữu ích lắm, vì thông thường không có bất kỳ diễn viên ngầm nào cho các kèo bóng đá hom nay enum, có nghĩa là sẽ không có cách nào để giải quyết một kèo bóng đá hom nay chung cho các đầu vào enum không giống nhau.

TheMạnhđơn giảnHàngCommonCác họ đa hình đại diện cho hai bộ biến kèo bóng đá hom nay độc lập. Xem xét ví dụ

Tạo chức năng MyFunc (A AnyEuity, B Anyelement,
                       c AnyCompit, D AnyCompiTHER)
Trả về mọi thứ tương thích như ...

29318_29609

29619_29691Phần 36.5.6) Có thể đa hình: Điều này được thực hiện bằng cách khai báo tham số cuối cùng của nó làVariadic AnyArrayhoặcVariadic AnycompatiBleArray. Đối với các mục đích của đối số khớp và xác định kèo bóng đá hom nay kết quả thực tế, một hàm như vậy hoạt động giống như khi bạn đã viết số lượng thích hợp củaAnynonarrayhoặcAnycompatiblenonArraytham số.

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.