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 / 7.3 / 7.2 / 7.1

Tạo tỷ lệ kèo bóng đá

Tạo tỷ lệ kèo bóng đá - Xác định tỷ lệ kèo bóng đá dữ liệu mới

Synopsis

Tạo tỷ lệ kèo bóng đátênnhư
    ([Attribution_name data_type[đối chiếuđối chiếu] [, ...]]))

Tạo tỷ lệ kèo bóng đátênnhư enum
    (['nhãn' [, ...]])

Tạo tỷ lệ kèo bóng đátêndưới dạng phạm vi (
    Subtype =Subtype[, SubType_OpClass =SubType_Operator_Class]
    [, Đối chiếu =đối chiếu]
    [, Kinh điển =Canonical_Function]
    [, SubType_Diff =]
    [, Multirange_type_name =Multirange_type_name]
)

Tạo tỷ lệ kèo bóng đátên(
    Input =input_function,,
    Đầu ra =output_function[, nhận =nhận_function]
    [, Send =send_function]
    [, Typmod_in =type_modifier_input_function]
    [, Typmod_out =TYPE_MODIFIER_OUTPUT_FUNCTION]
    [, Phân tích =Phân tích_Function]
    [, SCORSCRIPT =Subscript_Function]
    [, InternalLight =InternalLights| Biến]
    [, PassedByValue]
    [, Căn chỉnh =Căn chỉnh]
    [, Lưu trữ =lưu trữ]
    [, Như =like_type]
    [, Danh mục =thể tỷ lệ kèo bóng đá]
    [, Ưa thích =ưu tiên]
    [, Mặc định =mặc định]
    [, Phần tử =Element]
    [, Delimiter =12733_12744]
    [, Collatable =Có thể ghép]
)

Tạo tỷ lệ kèo bóng đátên

Mô tả

Tạo tỷ lệ kèo bóng đáĐăng ký một kiểu dữ liệu mới để sử dụng trong cơ sở dữ liệu hiện tại. Người dùng xác định một tỷ lệ kèo bóng đá trở thành chủ sở hữu của nó.

Nếu một tên lược đồ được đưa ra thì tỷ lệ kèo bóng đá được tạo trong lược đồ được chỉ định. Nếu không, nó được tạo ra trong lược đồ hiện tại. Tên tỷ lệ kèo bóng đá phải khác biệt với tên của bất kỳ tỷ lệ kèo bóng đá hoặc tên miền nào trong cùng một lược đồ. .

Có năm hình thứcTạo tỷ lệ kèo bóng đá, như thể hiện trong Tóm tắt Syntax ở trên. Họ tương ứng tạo mộttỷ lệ kèo bóng đá tổng hợp, anenum tỷ lệ kèo bóng đá, Atỷ lệ kèo bóng đá phạm vi, Atỷ lệ kèo bóng đá cơ sởhoặc Atỷ lệ kèo bóng đá shell. Bốn người đầu tiên trong số này được thảo luận lần lượt bên dưới. Một tỷ lệ kèo bóng đá vỏ chỉ đơn giản là một trình giữ chỗ cho một tỷ lệ kèo bóng đá được xác định sau; nó được tạo ra bằng cách phát hànhTạo tỷ lệ kèo bóng đáKhông có tham số ngoại trừ tên tỷ lệ kèo bóng đá. Các tỷ lệ kèo bóng đá shell là cần thiết như là tham chiếu chuyển tiếp khi tạo các tỷ lệ kèo bóng đá phạm vi và tỷ lệ kèo bóng đá cơ sở, như đã thảo luận trong các phần đó.

Các tỷ lệ kèo bóng đá tổng hợp

Hình thức đầu tiên củaTạo tỷ lệ kèo bóng đáTạo một tỷ lệ kèo bóng đá tổng hợp. tỷ lệ kèo bóng đá tổng hợp được chỉ định bởi một danh sách các tên thuộc tính và tỷ lệ kèo bóng đá dữ liệu. Đối chiếu của một thuộc tính cũng có thể được chỉ định, nếu tỷ lệ kèo bóng đá dữ liệu của nó có thể có được. Một tỷ lệ kèo bóng đá tổng hợp về cơ bản giống như tỷ lệ kèo bóng đá hàng của bảng, nhưng sử dụngTạo tỷ lệ kèo bóng đáTránh sự cần thiết phải tạo một bảng thực tế khi tất cả những gì mong muốn là xác định một tỷ lệ kèo bóng đá. Một tỷ lệ kèo bóng đá tổng hợp độc lập là hữu ích, ví dụ, là đối số hoặc tỷ lệ kèo bóng đá trả về của một hàm.

Để có thể tạo một tỷ lệ kèo bóng đá tổng hợp, bạn phải cósử dụngĐặc quyền trên tất cả các tỷ lệ kèo bóng đá thuộc tính.

Các tỷ lệ kèo bóng đá được liệt kê

Mẫu thứ hai củaTạo tỷ lệ kèo bóng đáTạo tỷ lệ kèo bóng đá được liệt kê (enum), như được mô tả trongPhần 8.7. Các tỷ lệ kèo bóng đá enum lấy một danh sách các nhãn được trích dẫn, mỗi tỷ lệ kèo bóng đá phải nhỏ hơnĐược đặt tênByte dài (64 byte trong một tiêu chuẩnPostgreSQLBuild). .thay đổi tỷ lệ kèo bóng đá.)

phạm vi tỷ lệ kèo bóng đá

Hình thức thứ ba củaTạo tỷ lệ kèo bóng đáTạo một tỷ lệ kèo bóng đá phạm vi mới, như được mô tả trongPhần 8.17.

tỷ lệ kèo bóng đá phạm viSubTypeCó thể là bất kỳ tỷ lệ kèo bóng đá nào với lớp toán tử B-cây được liên kết (để xác định thứ tự các giá trị cho tỷ lệ kèo bóng đá phạm vi). Thông thường, lớp toán tử B-cây mặc định của phân nhóm được sử dụng để xác định thứ tự; Để sử dụng lớp toán tử không mặc định, chỉ định tên của nó vớiSubType_opClass. Nếu phân nhóm có thể va chạm và bạn muốn sử dụng đối chiếu không mặc định trong thứ tự của phạm vi, hãy chỉ định đối chiếu mong muốn vớiđối chiếuTùy chọn.

Tùy chọnCanonicalHàm phải lấy một đối số của tỷ lệ kèo bóng đá phạm vi được xác định và trả về giá trị của cùng tỷ lệ kèo bóng đá. Điều này được sử dụng để chuyển đổi các giá trị phạm vi thành dạng kinh điển, khi áp dụng. Nhìn thấyPhần 8.17.8Để biết thêm thông tin. Tạo ACanonical17119_17375Tạo tỷ lệ kèo bóng đátên, không có tham số bổ sung. Sau đó, hàm có thể được khai báo bằng cách sử dụng tỷ lệ kèo bóng đá shell làm đối số và kết quả, và cuối cùng tỷ lệ kèo bóng đá phạm vi có thể được khai báo bằng cùng tên. Điều này tự động thay thế mục nhập tỷ lệ kèo bóng đá shell bằng tỷ lệ kèo bóng đá phạm vi hợp lệ.

Tùy chọnSubType_DiffHàm phải lấy hai giá trị củaSubTypegõ là đối số và trả về ADouble PrecisionGiá trị biểu thị sự khác biệt giữa hai giá trị đã cho. Mặc dù điều này là tùy chọn, cung cấp nó cho phép hiệu quả lớn hơn của các chỉ mục GIST trên các cột thuộc tỷ lệ kèo bóng đá phạm vi. Nhìn thấyPhần 8.17.8Để biết thêm thông tin.

Tùy chọnMultirange_type_nameTham số Chỉ định tên của tỷ lệ kèo bóng đá đa tỷ lệ kèo bóng đá tương ứng. Nếu không được chỉ định, tên này được chọn tự động như sau. Nếu tên tỷ lệ kèo bóng đá phạm vi chứa chuỗi conphạm vi, sau đó tên tỷ lệ kèo bóng đá đa dạng được hình thành bằng cách thay thếphạm viMultirange18738_18826_MultirangeHậu tố cho tên tỷ lệ kèo bóng đá phạm vi.

Các tỷ lệ kèo bóng đá cơ sở

Mẫu thứ tư củaTạo tỷ lệ kèo bóng đá19053_19250

Các tham số có thể xuất hiện theo bất kỳ thứ tự nào, không chỉ được minh họa ở trên, và hầu hết là tùy chọn. Bạn phải đăng ký hai hoặc nhiều chức năng (sử dụngTạo chức năng) trước khi xác định tỷ lệ kèo bóng đá. Các chức năng hỗ trợinput_functionoutput_functionđược yêu cầu, trong khi các chức năngnhận_function, send_function, type_modifier_input_function, type_modifier_output_function, Phân tích_FunctionSubscript_Functionlà tùy chọn. Nói chung, các chức năng này phải được mã hóa bằng C hoặc ngôn ngữ cấp thấp khác.

Theinput_functionChuyển đổi biểu diễn văn bản bên ngoài của tỷ lệ kèo bóng đá thành biểu diễn bên trong được sử dụng bởi các toán tử và các hàm được xác định cho tỷ lệ kèo bóng đá.output_functionThực hiện chuyển đổi ngược. Hàm đầu vào có thể được khai báo là lấy một đối số thuộc tỷ lệ kèo bóng đácStringhoặc khi thực hiện ba đối số của các tỷ lệ kèo bóng đáCSTRING, OID, Số nguyên20680_20873TYPMODcủa cột đích, nếu được biết (-1 sẽ được thông qua nếu không). Hàm đầu vào phải trả về giá trị của tỷ lệ kèo bóng đá dữ liệu. Thông thường, một hàm đầu vào nên được tuyên bố nghiêm ngặt; Nếu không, nó sẽ được gọi với tham số đầu tiên của NULL khi đọc giá trị đầu vào null. Hàm vẫn phải trả về null trong trường hợp này, trừ khi nó gây ra lỗi. . Chức năng đầu ra phải trả về tỷ lệ kèo bóng đácString. Các chức năng đầu ra không được gọi cho các giá trị null.

Tùy chọnnhận_functionChuyển đổi biểu diễn nhị phân bên ngoài của tỷ lệ kèo bóng đá thành đại diện bên trong. Nếu chức năng này không được cung cấp, tỷ lệ kèo bóng đá không thể tham gia vào đầu vào nhị phân. Biểu diễn nhị phân nên được chọn là giá rẻ để chuyển đổi sang dạng bên trong, trong khi có thể di động hợp lý. . Chức năng nhận có thể được khai báo là lấy một đối số của tỷ lệ kèo bóng đáNội bộ22303_22345Nội bộ, OID, Số nguyên. Đối số đầu tiên là một con trỏ tớiStringInfoBộ đệm giữ chuỗi byte nhận được; Các đối số tùy chọn giống như đối với hàm đầu vào văn bản. Hàm nhận phải trả về một giá trị của chính tỷ lệ kèo bóng đá dữ liệu. Thông thường, một chức năng nhận nên được tuyên bố nghiêm ngặt; Nếu không, nó sẽ được gọi với tham số đầu tiên của NULL khi đọc giá trị đầu vào null. Hàm vẫn phải trả về null trong trường hợp này, trừ khi nó gây ra lỗi. .send_functionChuyển đổi từ biểu diễn bên trong thành biểu diễn nhị phân bên ngoài. Nếu chức năng này không được cung cấp, tỷ lệ kèo bóng đá không thể tham gia vào đầu ra nhị phân. Hàm gửi phải được khai báo là lấy một đối số của kiểu dữ liệu mới. Chức năng gửi phải trả về tỷ lệ kèo bóng đábytea. Gửi các chức năng không được gọi cho các giá trị null.

Bạn nên tự hỏi làm thế nào các hàm đầu vào và đầu ra có thể được tuyên bố là có kết quả hoặc đối số của tỷ lệ kèo bóng đá mới, khi chúng phải được tạo trước khi tỷ lệ kèo bóng đá mới có thể được tạo. Câu trả lời là tỷ lệ kèo bóng đá trước tiên phải được định nghĩa làtỷ lệ kèo bóng đá shell, là tỷ lệ kèo bóng đá trình giữ chỗ không có thuộc tính ngoại trừ tên và chủ sở hữu. Điều này được thực hiện bằng cách ban hành lệnhTạo tỷ lệ kèo bóng đátên, không có tham số bổ sung. Sau đó, các hàm C I/O có thể được xác định tham chiếu tỷ lệ kèo bóng đá shell. Cuối cùng,Tạo tỷ lệ kèo bóng đáVới định nghĩa đầy đủ thay thế cho mục nhập shell bằng định nghĩa tỷ lệ kèo bóng đá hoàn chỉnh, hợp lệ, sau đó tỷ lệ kèo bóng đá mới có thể được sử dụng bình thường.

Tùy chọntype_modifier_input_function24389_24420là cần thiết nếu tỷ lệ kèo bóng đá hỗ trợ các công cụ sửa đổi, đó là các ràng buộc tùy chọn được gắn vào khai báo tỷ lệ kèo bóng đá, chẳng hạn nhưchar (5)hoặcSố (30,2). PostgreSQLCho phép các tỷ lệ kèo bóng đá do người dùng xác định lấy một hoặc nhiều hằng số hoặc định danh đơn giản làm trình sửa đổi. Tuy nhiên, thông tin này phải có khả năng được đóng gói vào một giá trị số nguyên không âm duy nhất để lưu trữ trong các danh mục hệ thống. Thetype_modifier_input_functionđược thông qua (các) công cụ sửa đổi được khai báo dưới dạng AcStringMảng. Nó phải kiểm tra các giá trị cho tính hợp lệ (ném lỗi nếu chúng sai) và nếu chúng đúng, hãy trả lại một không tiêu cựcSố nguyênGiá trị sẽ được lưu trữ dưới dạng cộtHồiTYPMODHồi. tỷ lệ kèo bóng đá sửa đổi sẽ bị từ chối nếu tỷ lệ kèo bóng đá không cótype_modifier_input_function. Thetype_modifier_output_functionChuyển đổi giá trị đánh máy số nguyên bên trong trở lại biểu mẫu chính xác cho màn hình người dùng. Nó phải trả về mộtcString25679_25753Số25784_25811(30,2). Nó được phép bỏ quatype_modifier_output_function25943_26052

Tùy chọnPhân tích_FunctionThực hiện bộ sưu tập thống kê cụ thể cho các cột của kiểu dữ liệu. Theo mặc định,Phân tíchSẽ cố gắng thu thập số liệu thống kê bằng cách sử dụng tỷ lệ kèo bóng đábằngHồiít hơnHồitoán tử, nếu có lớp toán tử B-cây mặc định cho tỷ lệ kèo bóng đá. Đối với các tỷ lệ kèo bóng đá phi Scalar, hành vi này có thể không phù hợp, vì vậy nó có thể được ghi đè bằng cách chỉ định chức năng phân tích tùy chỉnh. Hàm phân tích phải được khai báo để lấy một đối số duy nhấtNội bộ, và trả lại ABooleanKết quả. API chi tiết cho các chức năng phân tích xuất hiện trongsrc/bao gồm/lệnh/chân không.h.

Tùy chọnSubscript_functionCho phép tỷ lệ kèo bóng đá dữ liệu được đăng ký trong các lệnh SQL. Chỉ định chức năng này không khiến tỷ lệ kèo bóng đá được coi làTRUEHồitỷ lệ kèo bóng đá mảng; Ví dụ: nó sẽ không phải là ứng cử viên cho tỷ lệ kèo bóng đá kết quả củamảng []Xây dựng. Nhưng nếu đăng ký một giá trị của tỷ lệ kèo bóng đá là một ký hiệu tự nhiên để trích xuất dữ liệu từ nó, thì mộtSubscript_function27472_27591Nội bộ, và trả vềNội bộKết quả, là một con trỏ tới một cấu trúc các phương thức (chức năng) thực hiện đăng ký. API chi tiết cho các chức năng đăng ký xuất hiện trongsrc/bao gồm/nút/đăng ký.h. Nó cũng có thể hữu ích khi đọc triển khai mảng trongSRC/Backend/Utils/ADT/Arrayhoặc mã đơn giản hơn trongPREDT/HSTORE/HSTORE_SUBS.C. Thông tin bổ sung xuất hiện trongCác tỷ lệ kèo bóng đá mảngbên dưới.

28241_28478PostgreSQL. Đầu tiên trong số này làInternalLights. Các tỷ lệ kèo bóng đá dữ liệu cơ sở có thể được cố định độ dài, trong trường hợp đóInternalLightslà một số nguyên dương hoặc độ dài thay đổi, được biểu thị bằng cách cài đặtInternalLightsđếnBiến. (Bên trong, điều này được biểu thị bằng cách cài đặtTyplenđến -1.) Biểu diễn bên trong của tất cả các tỷ lệ kèo bóng đá có độ dài thay đổi phải bắt đầu với số nguyên 4 byte cho tổng độ dài của giá trị này của tỷ lệ kèo bóng đá. (Lưu ý rằng trường Độ dài thường được mã hóa, như được mô tả trongPhần 73.2; không khôn ngoan khi truy cập trực tiếp.)

Cờ tùy chọnpassedByValuechỉ ra rằng các giá trị của tỷ lệ kèo bóng đá dữ liệu này được truyền theo giá trị, thay vì tham chiếu. Các tỷ lệ kèo bóng đá được truyền theo giá trị phải có độ dài cố định và biểu diễn bên trong của chúng không thể lớn hơn kích thước củaDatumtỷ lệ kèo bóng đá (4 byte trên một số máy, 8 byte trên các máy khác).

TheCăn chỉnhTham số Chỉ định căn chỉnh lưu trữ cần thiết cho kiểu dữ liệu. Các giá trị được phép tương đương với sự liên kết trên các ranh giới byte 1, 2, 4 hoặc 8. Lưu ý rằng các tỷ lệ kèo bóng đá có độ dài biến phải có căn chỉnh ít nhất 4, vì chúng nhất thiết phải chứaINT4Là thành phần đầu tiên của họ.

Thelưu trữTham số cho phép lựa chọn các chiến lược lưu trữ cho các tỷ lệ kèo bóng đá dữ liệu có độ dài thay đổi. (Chỉ mộttrơnđược phép cho các tỷ lệ kèo bóng đá có độ dài cố định.)trơnChỉ định rằng dữ liệu của tỷ lệ kèo bóng đá sẽ luôn được lưu trữ nội tuyến và không được nén.mở rộngChỉ định rằng hệ thống trước tiên sẽ cố gắng nén giá trị dữ liệu dài và sẽ di chuyển giá trị ra khỏi hàng bảng chính nếu nó vẫn còn quá dài.bên ngoàiCho phép giá trị được chuyển ra khỏi bảng chính, nhưng hệ thống sẽ không cố gắng nén nó.chínhCho phép nén, nhưng không khuyến khích di chuyển giá trị ra khỏi bảng chính. .Mở rộngbên ngoàiMục.)

tất cảlưu trữGiá trị kháctrơnngụ ý rằng các hàm của kiểu dữ liệu có thể xử lý các giá trị đã đượcNướng, như được mô tả trongPhần 73.2Phần 38.13.131521_31708Bộ lưu trữ bộ thay đổi.

Thelike_typeTham số cung cấp một phương thức thay thế để chỉ định các thuộc tính biểu diễn cơ bản của kiểu dữ liệu: Sao chép chúng từ một số tỷ lệ kèo bóng đá hiện có. Các giá trị củaInternalLights, PassedByValue, Căn chỉnhlưu trữđược sao chép từ tỷ lệ kèo bóng đá được đặt tên. (Có thể, mặc dù thường không mong muốn, để ghi đè một số giá trị này bằng cách chỉ định chúng cùng vớinhư32385_32503MạnhPiggybacksTrên một tỷ lệ kèo bóng đá hiện có theo một số kiểu.

Thethể tỷ lệ kèo bóng đáưu tiênCác tham số có thể được sử dụng để giúp kiểm soát diễn viên ngầm sẽ được áp dụng trong các tình huống mơ hồ. Mỗi tỷ lệ kèo bóng đá dữ liệu thuộc về một danh mục được đặt tên bởi một ký tự ASCII và mỗi tỷ lệ kèo bóng đá làưu tiênhoặc không trong danh mục của nó. Trình phân tích cú pháp sẽ thích đúc theo các tỷ lệ kèo bóng đá ưa thích (nhưng chỉ từ các tỷ lệ kèo bóng đá khác trong cùng một danh mục) khi quy tắc này hữu ích trong việc giải quyết các chức năng hoặc toán tử quá tải. Để biết thêm chi tiết, xemChương 10. Đối với các tỷ lệ kèo bóng đá không có diễn viên ngầm đến hoặc từ bất kỳ tỷ lệ kèo bóng đá nào khác, nó là đủ để để các cài đặt này theo mặc định. Tuy nhiên, đối với một nhóm các tỷ lệ kèo bóng đá liên quan có diễn viên ngầm, thường hữu ích khi đánh dấu tất cả chúng là thuộc về một danh mục và chọn một hoặc hai trong sốTổng quát nhấtCác tỷ lệ kèo bóng đá được ưa thích trong danh mục. The33751_33761Tham số đặc biệt hữu ích khi thêm tỷ lệ kèo bóng đá do người dùng xác định vào danh mục tích hợp hiện có, chẳng hạn như các tỷ lệ kèo bóng đá số hoặc chuỗi. Tuy nhiên, cũng có thể tạo các tỷ lệ kèo bóng đá tỷ lệ kèo bóng đá hoàn toàn mới được xác định. Chọn bất kỳ ký tự ASCII nào khác ngoài chữ cái trong trường hợp trên để đặt tên cho một danh mục như vậy.

34085_34247Mặc địnhTừ khóa. (Một mặc định như vậy có thể được ghi đè bởi một rõ ràngMặc địnhmệnh đề được gắn vào một cột cụ thể.)

Để chỉ ra rằng một tỷ lệ kèo bóng đá là tỷ lệ kèo bóng đá mảng có độ dài cố định, chỉ định tỷ lệ kèo bóng đá của các phần tử mảng bằng cách sử dụngElementTừ khóa. Ví dụ: để xác định một mảng số nguyên 4 byte (INT4), Chỉ địnhElement = int4. Để biết thêm chi tiết, xemCác tỷ lệ kèo bóng đá mảngbên dưới.

Để chỉ ra dấu phân cách được sử dụng giữa các giá trị trong biểu diễn bên ngoài của các mảng thuộc tỷ lệ kèo bóng đá này,Delimitercó thể được đặt thành một ký tự cụ thể. DELIMITER mặc định là dấu phẩy (,). Lưu ý rằng dấu phân cách được liên kết với tỷ lệ kèo bóng đá phần tử mảng, không phải tỷ lệ kèo bóng đá mảng.

Nếu tham số boolean tùy chọncó thể ghéplà đúng, định nghĩa cột và biểu thức của tỷ lệ kèo bóng đá có thể mang thông tin đối chiếu thông qua việc sử dụngđối chiếumệnh đề. Tùy thuộc vào việc triển khai các chức năng hoạt động trên tỷ lệ kèo bóng đá để thực sự sử dụng thông tin đối chiếu; Điều này không xảy ra tự động chỉ bằng cách đánh dấu tỷ lệ kèo bóng đá có thể có được.

Các tỷ lệ kèo bóng đá mảng

Bất cứ khi nào một tỷ lệ kèo bóng đá do người dùng xác định,PostgreSQL35856_36032Được đặt tênByte dài. .mảng_inArray_out. Hơn nữa, tỷ lệ kèo bóng đá này là những gì hệ thống sử dụng cho các cấu trúc như​​mảng []qua tỷ lệ kèo bóng đá do người dùng xác định. tỷ lệ kèo bóng đá mảng theo dõi mọi thay đổi trong chủ sở hữu hoặc lược đồ của tỷ lệ kèo bóng đá thành phần của nó và bị tỷ lệ kèo bóng đá bỏ nếu tỷ lệ kèo bóng đá phần tử là.

Bạn có thể hỏi một cách hợp lý lý do tại sao cóElementtùy chọn, nếu hệ thống tự động thực hiện tỷ lệ kèo bóng đá mảng chính xác. Trường hợp chính mà nó hữu ích để sử dụngElementlà khi bạn đang tạo một tỷ lệ kèo bóng đá có độ dài cố định, đó là một loạt các điều giống hệt nhau và bạn muốn cho phép những điều này được truy cập trực tiếp bằng cách đăng ký, ngoài bất kỳ hoạt động nào bạn dự định cung cấp cho toàn bộ tỷ lệ kèo bóng đá. Ví dụ: gõđiểmđược biểu diễn dưới dạng hai số điểm nổi, có thể được truy cập bằng cách sử dụngđiểm [0]Điểm [1]. Lưu ý rằng cơ sở này chỉ hoạt động cho các tỷ lệ kèo bóng đá có độ dài cố định có dạng bên trong chính xác là một chuỗi các trường có độ dài cố định giống hệt nhau. Vì lý do lịch sử (nghĩa là, điều này rõ ràng là sai nhưng đã quá muộn để thay đổi nó), việc đăng ký các tỷ lệ kèo bóng đá mảng có độ dài cố định bắt đầu từ số 0, thay vì từ một mảng có độ dài thay đổi.

Chỉ địnhSCORSTIONTùy chọn cho phép tỷ lệ kèo bóng đá dữ liệu được đăng ký, mặc dù hệ thống không coi nó là tỷ lệ kèo bóng đá mảng. Hành vi vừa được mô tả cho các mảng có độ dài cố định thực sự được thực hiện bởiSCORSTIPHandler HàmRAW_ARRAY_SUBSCRIPT_HANDLER, được sử dụng tự động nếu bạn chỉ địnhElementĐối với tỷ lệ kèo bóng đá có độ dài cố định mà không viếtĐăng ký.

38239_38266SCORSTIONHàm, không cần thiết phải chỉ địnhElementtrừ khiĐăng kýChức năng xử lý cần tham khảo ý kiếnTypelemĐể tìm hiểu những gì sẽ trở lại. Hãy biết rằng chỉ địnhElementkhiến hệ thống cho rằng tỷ lệ kèo bóng đá mới chứa hoặc bằng cách nào đó phụ thuộc vào vật lý vào tỷ lệ kèo bóng đá phần tử; Do đó, ví dụ như thay đổi thuộc tính của tỷ lệ kèo bóng đá phần tử sẽ không được phép nếu có bất kỳ cột nào thuộc tỷ lệ kèo bóng đá phụ thuộc.

tham số

tên

Tên (tùy chọn Lược đồ theo trình độ) của một tỷ lệ kèo bóng đá sẽ được tạo.

Attribution_name

Tên của thuộc tính (cột) cho tỷ lệ kèo bóng đá tổng hợp.

data_type

Tên của một tỷ lệ kèo bóng đá dữ liệu hiện có để trở thành một cột của tỷ lệ kèo bóng đá tổng hợp.

đối chiếu

Tên của một đối chiếu hiện có được liên kết với một cột của một tỷ lệ kèo bóng đá tổng hợp hoặc với một tỷ lệ kèo bóng đá phạm vi.

nhãn

Một chuỗi theo nghĩa đen đại diện cho nhãn văn bản được liên kết với một giá trị của một tỷ lệ kèo bóng đá enum.

SubType

Tên của tỷ lệ kèo bóng đá phần tử mà tỷ lệ kèo bóng đá phạm vi sẽ đại diện cho phạm vi của.

SubType_Operator_Class

Tên của lớp toán tử B-cây cho phân nhóm.

Canonical_Function

Tên của hàm Canonicalization cho tỷ lệ kèo bóng đá phạm vi.

SubType_Diff_Function

Tên của hàm khác biệt cho phân nhóm.

Multirange_type_name

Tên của tỷ lệ kèo bóng đá đa tỷ lệ kèo bóng đá tương ứng.

input_function

Tên của hàm chuyển đổi dữ liệu từ dạng văn bản bên ngoài của tỷ lệ kèo bóng đá thành dạng bên trong của nó.

output_function

Tên của hàm chuyển đổi dữ liệu từ dạng bên trong của tỷ lệ kèo bóng đá thành dạng văn bản bên ngoài của nó.

nhận_function

Tên của hàm chuyển đổi dữ liệu từ dạng nhị phân bên ngoài của tỷ lệ kèo bóng đá thành dạng bên trong của nó.

Send_Function

41961_42063

type_modifier_input_function

42220_42315

type_modifier_output_function

Tên của hàm chuyển đổi dạng bên trong của (các) công cụ sửa đổi của tỷ lệ kèo bóng đá thành dạng văn bản bên ngoài.

Phân tích_Function

Tên của hàm thực hiện phân tích thống kê cho kiểu dữ liệu.

Subscript_function

Tên của hàm xác định đăng ký giá trị của kiểu dữ liệu.

InternalLights

Một hằng số số chỉ định độ dài tính theo byte của biểu diễn nội bộ của tỷ lệ kèo bóng đá mới. Giả định mặc định là nó có độ dài thay đổi.

Căn chỉnh

Yêu cầu căn chỉnh lưu trữ của kiểu dữ liệu. Nếu được chỉ định, nó phải làchar, INT2, INT4hoặcDouble; Mặc định làINT4.

lưu trữ

Chiến lược lưu trữ cho kiểu dữ liệu. Nếu được chỉ định, phải làtrơn, bên ngoài, mở rộng44053_4406044080_44086; Mặc định làtrơn.

like_type

Tên của một tỷ lệ kèo bóng đá dữ liệu hiện có mà tỷ lệ kèo bóng đá mới sẽ có cùng một biểu diễn như. Các giá trị củaInternalLights, passedByValue, Căn chỉnhlưu trữđược sao chép từ tỷ lệ kèo bóng đá đó, trừ khi được ghi đè bởi thông số kỹ thuật rõ ràng ở nơi khác trong nàyTạo tỷ lệ kèo bóng đálệnh.

thể tỷ lệ kèo bóng đá

Mã danh mục (một ký tự ASCII duy nhất) cho tỷ lệ kèo bóng đá này. Mặc định là'U'chotỷ lệ kèo bóng đá do người dùng xác địnhHồi. Các mã danh mục tiêu chuẩn khác có thể được tìm thấy trongBảng 53,65. Bạn cũng có thể chọn các ký tự ASCII khác để tạo các danh mục tùy chỉnh.

ưu tiên

Đúng nếu tỷ lệ kèo bóng đá này là tỷ lệ kèo bóng đá ưa thích trong tỷ lệ kèo bóng đá tỷ lệ kèo bóng đá của nó, khác. Mặc định là sai. Hãy rất cẩn thận về việc tạo một tỷ lệ kèo bóng đá ưa thích mới trong một tỷ lệ kèo bóng đá tỷ lệ kèo bóng đá hiện có, vì điều này có thể gây ra những thay đổi đáng ngạc nhiên trong hành vi.

Mặc định

Giá trị mặc định cho kiểu dữ liệu. Nếu điều này bị bỏ qua, mặc định là null.

Element

tỷ lệ kèo bóng đá được tạo là một mảng; Điều này chỉ định tỷ lệ kèo bóng đá phần tử mảng.

Delimiter

ký tự phân cách được sử dụng giữa các giá trị trong các mảng được làm từ tỷ lệ kèo bóng đá này.

có thể ghép

Đúng nếu hoạt động của tỷ lệ kèo bóng đá này có thể sử dụng thông tin đối chiếu. Mặc định là sai.

Ghi chú

46720_47120bí mậtThông tin sẽ được sử dụng trong khi chuyển đổi nó thành hoặc từ hình thức bên ngoài.

trướcPostgreSQL47311_47436_) Chuẩn bị. . Do đó, viết mã phụ thuộc vào quy ước này. Thay vào đó, sử dụngPG_TYPE.TYPARRAYĐể định vị tỷ lệ kèo bóng đá mảng được liên kết với một tỷ lệ kèo bóng đá đã cho.

Có thể nên tránh sử dụng tên tỷ lệ kèo bóng đá và bảng bắt đầu bằng dấu gạch dưới. Mặc dù máy chủ sẽ thay đổi tên tỷ lệ kèo bóng đá mảng được tạo để tránh va chạm với tên người dùng, nhưng vẫn có nguy cơ nhầm lẫn, đặc biệt là phần mềm khách hàng cũ có thể cho rằng tên tỷ lệ kèo bóng đá bắt đầu với dấu gạch dưới luôn đại diện cho các mảng.

trướcPostgreSQLPhiên bản 8.2, Cú pháp tạo kiểu vỏTạo tỷ lệ kèo bóng đátênKhông tồn tại. Cách để tạo một tỷ lệ kèo bóng đá cơ sở mới là tạo chức năng đầu vào của nó trước tiên. Trong cách tiếp cận này,PostgreSQLTrước tiên sẽ xem tên của tỷ lệ kèo bóng đá dữ liệu mới là tỷ lệ kèo bóng đá trả về của hàm đầu vào. tỷ lệ kèo bóng đá vỏ được tạo ra hoàn toàn trong tình huống này, và sau đó nó có thể được tham chiếu trong các định nghĩa của các hàm I/O còn lại. Cách tiếp cận này vẫn hoạt động, nhưng không được chấp nhận và có thể không được phép trong một số phát hành trong tương lai. Ngoài ra, để tránh vô tình làm lộn xộn các danh mục với các tỷ lệ kèo bóng đá shell do lỗi chính tả đơn giản trong các định nghĩa chức năng, một tỷ lệ kèo bóng đá shell sẽ chỉ được thực hiện theo cách này khi hàm đầu vào được viết bằng C.

Ví dụ

Ví dụ này tạo ra một tỷ lệ kèo bóng đá tổng hợp và sử dụng nó trong một định nghĩa hàm:

Tạo tỷ lệ kèo bóng đá compfoo AS (F1 int, F2 văn bản);

Tạo hàm getfoo () trả về setof compfoo dưới dạng $$
    Chọn Fooid, Fooname từ Foo
$$ Ngôn ngữ SQL;

Ví dụ này tạo ra một tỷ lệ kèo bóng đá được liệt kê và sử dụng nó trong một định nghĩa bảng:

tạo tỷ lệ kèo bóng đá bug_status dưới dạng enum ('mới', 'mở', 'đóng');

Tạo lỗi bảng (
    id serial,
    mô tả văn bản,
    trạng thái bug_status
);

Ví dụ này tạo ra một tỷ lệ kèo bóng đá phạm vi:

Tạo tỷ lệ kèo bóng đá float8_range dưới dạng phạm vi (phân nhóm = float8, subtype_diff = float8mi);

Ví dụ này tạo ra kiểu dữ liệu cơ sởBoxvà sau đó sử dụng tỷ lệ kèo bóng đá trong định nghĩa bảng:

Tạo hộp tỷ lệ kèo bóng đá;

Tạo chức năng my_box_in_function (cString) trả về hộp như ...;
Tạo hàm my_box_out_function (hộp) trả về cString là ...;

Tạo hộp tỷ lệ kèo bóng đá (
    InterlitalLight = 16,
    Input = my_box_in_function,
    Đầu ra = my_box_out_function
);

Tạo bảng myboxes (
    ID Số nguyên,
    Hộp mô tả
);

Nếu cấu trúc bên trong củaBoxlà một mảng gồm bốnfloat4Các yếu tố, thay vào đó chúng ta có thể sử dụng:

Tạo hộp tỷ lệ kèo bóng đá (
    InterlitalLight = 16,
    Input = my_box_in_function,
    Output = my_box_out_function,
    Phần tử = float4
);

cho phép các số thành phần của giá trị hộp được truy cập bằng cách đăng ký. Nếu không thì tỷ lệ kèo bóng đá hoạt động giống như trước đây.

Ví dụ này tạo ra một tỷ lệ kèo bóng đá đối tượng lớn và sử dụng nó trong một định nghĩa bảng:

Tạo tỷ lệ kèo bóng đá bigobj (
    Input = lo_filein, output = lo_fileout,
    InternalLights = Biến
);
Tạo bảng BIG_OBJS (
    ID Số nguyên,
    obj bigobj
);

51210_51281Phần 38.13.

Tương thích

Hình thức đầu tiên củaTạo tỷ lệ kèo bóng đálệnh, tạo ra một tỷ lệ kèo bóng đá tổng hợp, phù hợp vớiSQL51641_51674POSTGRESQLTiện ích mở rộng. TheTạo tỷ lệ kèo bóng đácâu lệnh trongSQLTiêu chuẩn cũng xác định các hình thức khác không được triển khai trongPOSTGRESQL.

Khả năng tạo tỷ lệ kèo bóng đá tổng hợp với các thuộc tính bằng không làPostgreSQL-Specific độ lệch so với tiêu chuẩn (tương tự với cùng một trường hợp trongTạo bảng).

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 phù hợ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.