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à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ế.

kèo bóng đá euro KIỂU

tên

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

Synopsis

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

Tạo kèo bóng đá eurotênnhư enum
    (['11078_11085' [, ...]])

Tạo kèo bóng đá eurotê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]
    [, 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ể kèo bóng đá euro]
    [, Ưa thích =ưu tiên]
    [, Mặc định =mặc định]
    [, Phần tử =Element]
    [, Delimiter =Delimiter]
    [, Collatable =có thể ghép]
)

Tạo kèo bóng đá eurotên

Mô tả

Tạo kèo bóng đá euroĐă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 kèo bóng đá euro trở thành chủ sở hữu của nó.

12639_13006

Các kèo bóng đá euro tổng hợp

Hình thức đầu tiên củaTạo kèo bóng đá euroTạo kèo bóng đá euro tổng hợp. kèo bóng đá euro tổng hợp được chỉ định bởi một Danh sách các tên thuộc tính và kiểu dữ liệu. Một thuộc tính của Đối chiếu cũng có thể được chỉ định, nếu kèo bóng đá euro dữ liệu của nó có thể có được. Một kèo bóng đá euro tổng hợp về cơ bản giống như kèo bóng đá euro hàng của bảng, nhưng sử dụngTạo kèo bóng đá euro13487_13687

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

Hình thức thứ hai củaTạo kèo bóng đá euroTạo kèo bóng đá euro được liệt kê (enum), như được mô tả trongPhần 8.7. Các kèo bóng đá euro enum lấy một danh sách một hoặc nhiều nhãn được trích dẫn, mỗi nhãn phải nhỏ hơnĐược đặt tênbyte dài (64 trong A tiêu chuẩnPOSTGRESQLBuild).

Các kèo bóng đá euro cơ sở

Mẫu thứ ba củaTạo kèo bóng đá euro14376_14589

Các tham số có thể xuất hiện theo bất kỳ thứ tự nào, không chỉ 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 hơn (sử dụngkèo bóng đá euro CHỨC NĂNG) trước khi xác định kèo bóng đá euro. Các chức năng hỗ trợinput_functionoutput_functionđược yêu cầu, trong khi Chức năngnhận_function, send_function, type_modifier_input_function, type_modifier_output_functionPhân tích_Functionlà tùy chọn. Nói chung, các chức năng này phải được mã hóa trong C hoặc khác Ngôn ngữ cấp thấp.

The15427_15443Chuyển đổi biểu diễn văn bản bên ngoài của kèo bóng đá euro cho bên trong Đại diện được sử dụng bởi các toán tử và các chức năng được xác định cho kèo bóng đá euro.output_functionThực hiện chuyển đổi ngược. Chức năng đầu vào có thể là được tuyên bố là lấy một đối số của kèo bóng đá eurocStringhoặc khi thực hiện ba đối số của các kèo bóng đá eurocString, OID, Số nguyên. Đối số đầu tiên là đầu vào Văn bản dưới dạng chuỗi C, đối số thứ hai là OID của kèo bóng đá euro (ngoại trừ các kèo bóng đá euro mảng, thay vào đó nhận phần tử của chúng kèo bóng đá euro oid) và thứ ba làTYPMODcủ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ề một giá trị của kèo bóng đá euro dữ liệu chính nó. Thông thường, một hàm đầu vào phải tuyên bố nghiêm ngặt; Nếu nó không, nó sẽ được gọi với một null Tham số đầu tiên khi đọc một giá trị đầu vào null. Chức năng vẫn phải trả lại null trong trường hợp này, trừ khi nó gây ra lỗi. (Trường hợp này chủ yếu có nghĩa là để hỗ trợ các chức năng đầu vào miền, có thể cần phải từ chối đầu vào null.) Hàm đầu ra Phải được tuyên bố là lấy một đối số của kiểu dữ liệu mới. Chức năng đầu ra phải trả về kèo bóng đá eurocstring. Các chức năng đầu ra không được gọi cho NULL giá trị.

Tùy chọnnhận_functionChuyển đổi kèo bóng đá euro của kèo bóng đá euro Đại diện nhị phân bên ngoài cho đại diện nội bộ. Nếu chức năng này không được cung cấp, kèo bóng đá euro không thể tham gia trong đầu vào nhị phân. Biểu diễn nhị phân nên được chọn để trở nên rẻ để chuyển đổi sang dạng nội bộ, trong khi hợp lý cầm tay. (Ví dụ: các kèo bóng đá euro dữ liệu số nguyên tiêu chuẩn sử dụng Mạng đơn đặt hàng byte là biểu diễn nhị phân bên ngoài, trong khi Đại diện nội bộ nằm trong byte gốc của máy thứ tự.) chức năng nhận sẽ thực hiện kiểm tra đầy đủ Để đảm bảo rằng giá trị là hợp lệ. Chức năng nhận có thể là được tuyên bố là lấy một đối số của kèo bóng đá euroNội bộhoặc khi thực hiện ba đối số của các kèo bóng đá euroNội bộ, OID, Số nguyên. Đối số đầu tiên là một con trỏ đến aStringInfoBộ đệm giữ đã nhận được chuỗi byte; Các đối số tùy chọn giống như cho chức năng đầu vào văn bản. Chức năng nhận phải trả về một Giá trị của chính kèo bóng đá euro 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 nó không, nó sẽ được gọi với Một tham số đầu tiên null khi đọc giá trị đầu vào null. Các chức năng vẫn phải trả lại null trong trường hợp này, trừ khi nó tăng một lỗi. (Trường hợp này chủ yếu là nhằm hỗ trợ nhận miền các chức năng, có thể cần phải từ chối đầu vào null.) Tương tự, Tùy chọnSend_FunctionChuyển đổi từ biểu diễn bên trong sang bên ngoài Đại diện nhị phân. Nếu chức năng này không được cung cấp, kèo bóng đá euro không thể tham gia vào đầu ra nhị phân. Chức năng gửi Phải được tuyên bố 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ề kèo bóng đá eurobytea. 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 đầu vào và đầu vào Các chức năng đầu ra có thể được khai báo là có kết quả hoặc đối số thuộc kèo bóng đá euro mới, khi chúng phải được tạo ra trước khi kèo bóng đá euro có thể được tạo ra. Câu trả lời là kèo bóng đá euro nên trước tiên được định nghĩa làkèo bóng đá euro shell, là một kèo bóng đá euro trình giữ chỗ không có thuộc tính ngoại trừ tên và người sở hữu. Điều này được thực hiện bằng cách ban hành lệnhTạo kèo bóng đá eurotên, không có tham số bổ sung. Sau đó, các hàm I/O có thể được xác định tham chiếu shell kiểu. Cuối cùng,Tạo kèo bóng đá eurovới đầy đủ Định nghĩa thay thế mục nhập shell bằng một kèo bóng đá euro hoàn chỉnh, hợp lệ Định nghĩa, sau đó kèo bóng đá euro mới có thể được sử dụng bình thường.

Tùy chọntype_modifier_input_functiontype_modifier_output_functionlà cần thiết nếu kèo bóng đá euro hỗ trợ sửa đổi, đó là tùy chọn Các ràng buộc được gắn vào khai báo kèo bóng đá euro, chẳng hạn nhưChar (5)hoặcSố (30,2). PostgreSQLcho phép các kèo bóng đá euro 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 công cụ 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 hệ thống Danh mục. 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 là đúng, trả về một không tiêu cựcSố nguyênGiá trị sẽ được lưu trữ dưới dạng cột"Typmod". kèo bóng đá euro sửa đổi sẽ bị từ chối nếu kèo bóng đá euro 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 đúng Biểu mẫu cho màn hình người dùng. Nó phải trả về mộtcstringGiá trị là chuỗi chính xác để nối vào tên kèo bóng đá euro; Ví dụSố's chức năng có thể trả về(30,2). Nó là được phép bỏ quatype_modifier_output_function, trong đó CASE Định dạng hiển thị mặc định chỉ là kiểu chữ được lưu trữ Giá trị số nguyên được đặt trong ngoặc đơn.

Tùy chọnPhân tích_FunctionThực hiện kèo bóng đá euro cụ thể Bộ sưu tập thống kê 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 Thống kê sử dụng kèo bóng đá euro"bằng""Ít hơn"21815_22109Nội bộ, và trả lại ABooleanKết quả. API chi tiết để phân tích Các chức năng xuất hiện trongsrc/bao gồm/lệnh/chân không.h.

Trong khi các chi tiết của biểu diễn nội bộ của kèo bóng đá euro mới chỉ được biết đến các chức năng I/O và các chức năng khác mà bạn tạo để làm việc với kèo bóng đá euro, có một số thuộc tính của Đại diện nội bộ phải được khai báo choPostgreSQL. Đầu tiên của những điều này làInternalLights. Dữ liệu cơ sở Các kèo bóng đá euro có thể được cố định độ dài, trong trường hợp đóInternalLights22799_22870InternalLightsđếnBiến. (Bên trong, điều này được đại diện bởi cài đặtTyplenđến -1.) Biểu diễn của tất cả các kèo bóng đá euro có độ dài thay đổi phải bắt đầu với một Số nguyên 4 byte cho tổng chiều dài của giá trị này của kiểu.

Cờ tùy chọnpassedByValueCho biết rằng các giá trị của kèo bóng đá euro dữ liệu này được truyền theo giá trị, hơn là bằng cách tham khảo. Bạn không thể vượt qua các kèo bóng đá euro giá trị có Biểu diễn bên trong lớn hơn kích thước củaDatumkèo bóng đá euro (4 byte trên hầu hết các máy, 8 byte trên một vài).

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 Các giá trị được phép tương đương với căn chỉnh trên byte 1, 2, 4 hoặc 8 ranh giới. Lưu ý rằng các kèo bóng đá euro có độ dài biến phải có liên kết í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 kèo bóng đá euro dữ liệu có độ dài thay đổi. (Chỉ mộttrơnđược phép cho Các kèo bóng đá euro có độ dài cố định.)trơnChỉ định Dữ liệu đó của kèo bóng đá euro sẽ luôn được lưu trữ nội tuyến và không được nén.mở rộngChỉ định điều đó Hệ thống trước tiên sẽ cố gắng nén một giá trị dữ liệu dài và sẽ chuyển giá trị ra khỏi hàng bảng chính nếu nó vẫn còn dài.bên ngoàiCho phép giá trị 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. (Dữ liệu Các mặt hàng có chiến lược lưu trữ này vẫn có thể được chuyển ra khỏi bảng chính nếu không có cách nào khác để làm cho một hàng phù hợp, nhưng Chúng sẽ được giữ trong bảng chính một cách ưu tiênmở rộngbên ngoàiMục.)

Thelike_type25056_25228InternalLights, passedByValue, Căn chỉnhlưu trữđược sao chép từ kèo bóng đá euro được đặt tên. (Có thể, mặc dù thường không mong muốn, để ghi đè một số của các giá trị này bằng cách chỉ định chúng cùng vớinhưmệnh đề.) Chỉ định biểu diễn theo cách này đặc biệt hữu ích khi việc thực hiện cấp thấp của kèo bóng đá euro mới"Piggybacks"Trên hiện tại Nhập một số thời trang.

Thethể kèo bóng đá euroưu tiêntham 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 mơ hồ tình huống. Mỗi kèo bóng đá euro dữ liệu thuộc về một danh mục được đặt tên bởi một ký tự ascii đơn và mỗi kèo bóng đá euro là"ưa thích"hoặc không trong danh mục của nó. Các trình phân tích cú pháp sẽ thích đúc hơn các kèo bóng đá euro ưa thích (nhưng chỉ từ Các kèo bóng đá euro 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. Cho các kèo bóng đá euro không có diễn viên ngầm đến hoặc từ bất kỳ kèo bóng đá euro nào khác, nó là đủ để để lại các cài đặt này tại mặc định. Tuy nhiên, Đối với một nhóm các kèo bóng đá euro liên quan có diễn viên ngầm, nó là thường hữu ích để đánh dấu tất cả chúng thuộc thể kèo bóng đá euro và Chọn một hoặc hai trong số"Hầu hết tổng quan"Các kèo bóng đá euro được ưa thích trong danh mục. Thethể kèo bóng đá eurotham số là đặc biệt hữu ích khi thêm kèo bóng đá euro 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ư số hoặc chuỗi kèo bóng đá euro. Tuy nhiên, cũng có thể tạo ra mới Các kèo bóng đá euro kèo bóng đá euro hoàn toàn do người dùng xác định. Chọn bất kỳ ASCII nhân vật khác với một chữ cái trong trường hợp trên để đặt tên cho một kèo bóng đá euro.

Giá trị mặc định có thể được chỉ định, trong trường hợp người dùng muốn các cột của kiểu dữ liệu mặc định là một cái gì đó khác ngoài giá trị null. Chỉ định mặc định vớiMặc địnhTừ khóa. (Một mặc định như vậy có thể là được ghi đè bởi một rõ ràngmặc địnhmệnh đề được gắn vào một cột cụ thể.)

27598_27690Elementkhóa từ. Ví dụ: để xác định một loạt các số nguyên 4 byte (INT4), Chỉ địnhElement = int4. Thông tin chi tiết về các kèo bóng đá euro mảng xuất hiện bên dưới.

27935_28048Delimiter28092_28171,28200_28302

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

Các kèo bóng đá euro mảng

Bất cứ khi nào một kèo bóng đá euro do người dùng xác định,PostgreSQLTự động tạo một kèo bóng đá euro mảng liên quan, có tên bao gồm kèo bóng đá euro cơ sở Tên được chuẩn bị với một dấu gạch dưới, và bị cắt ngắn nếu cần thiết để giữ nó ít hơnĐược đặt tênbyte dài. (Nếu tên được tạo như vậy, hãy va chạm với một kèo bóng đá euro hiện có Tên, quy trình được lặp lại cho đến khi một tên không được colliding tìm thấy.) kèo bóng đá euro mảng được tạo ngầm này là chiều dài thay đổi và sử dụng các chức năng đầu vào và đầu ra tích hợpmảng_inArray_out. kèo bóng đá euro mảng theo dõi mọi thay đổi trong chủ sở hữu kèo bóng đá euro phần tử của nó hoặc lược đồ và bị kèo bóng đá euro bỏ nếu kèo bóng đá euro 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 làm cho đúng kèo bóng đá euro mảng tự động. Trường hợp duy nhất mà nó hữu ích cho sử dụngElement29875_30187điểmIS đại diện chỉ là hai số điểm nổi, mà nó cho phép được truy cập làđiểm [0]Điểm [1]. Lưu ý rằng cơ sở này chỉ hoạt động cho các kèo bóng đá euro có độ dài cố định có dạng nội bộ chính xác là Trình tự các trường có độ dài cố định giống hệt nhau. Một người đăng ký kèo bóng đá euro có độ dài thay đổi phải có nội bộ tổng quát Đại diện được sử dụng bởimảng_inArray_out30704_30919

31009_31021

tên

Tên (tùy chọn Lược đồ theo trình độ) kèo bóng đá euro.

Attribution_name

Tên của một thuộc tính (cột) cho tổng hợp kiểu.

data_type

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

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 kèo bóng đá euro enum.

input_function

Tên của hàm chuyển đổi dữ liệu từ Biểu mẫu văn bản bên ngoài của kèo bóng đá euro sang dạng nội bộ của nó.

output_function

Tên của hàm chuyển đổi dữ liệu từ Biểu mẫu nội bộ của kèo bóng đá euro sang 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ừ Biểu mẫu nhị phân bên ngoài của kèo bóng đá euro thành dạng nội bộ của nó.

Send_Function

Tên của hàm chuyển đổi dữ liệu từ Biểu mẫu nội bộ của kèo bóng đá euro sang dạng nhị phân bên ngoài của nó.

type_modifier_input_function

Tên của hàm chuyển đổi một mảng (S) cho kèo bóng đá euro thành dạng nội bộ.

type_modifier_output_function

Tên của một hàm chuyển đổi dạng nội bộ của bộ điều chỉnh của kèo bóng đá euro thành biểu mẫu văn bản bên ngoài.

Phân tích_Function

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

InternalLights

Một hằng số số chỉ định độ dài trong byte của Đại diện nội bộ của kèo bóng đá euro mới. Mặc định giả đị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 như đượ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ộng,, hoặcchính; Mặc định làtrơn.

like_type

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

Thể kèo bóng đá euro

Mã danh mục (một ký tự ASCII duy nhất) cho điều này kiểu. Mặc định là'U'cho"kèo bóng đá euro do người dùng xác định". Khác Mã danh mục tiêu chuẩn có thể được tìm thấy trongBảng 45-49. Bạn cũng có thể chọn các ký tự ASCII khác trong đặt hàng để kèo bóng đá euro các danh mục tùy chỉnh.

ưu tiên

Đúng nếu kèo bóng đá euro này là kèo bóng đá euro ưa thích trong kèo bóng đá euro của nó thể kèo bóng đá euro, khác sai. Mặc định là sai. Hãy rất cẩn thận về việc tạo một kèo bóng đá euro ưa thích mới trong một kèo bóng đá euro hiện có danh mụ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

35999_36091

Delimiter

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

có thể ghép

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

Ghi chú

Vì không có hạn chế sử dụng kiểu dữ liệu một lần Nó đã được tạo ra, tạo ra một kèo bóng đá euro cơ sở là tương đương với việc cấp Quyền thực thi công khai về các chức năng được đề cập trong kèo bóng đá euro sự định nghĩa. Đây thường không phải là một vấn đề cho các kèo bóng đá euro Các chức năng hữu ích trong một định nghĩa kèo bóng đá euro. Nhưng bạn có thể muốn suy nghĩ hai lần trước khi thiết kế một kèo bóng đá euro theo cách yêu cầu"bí mật"Thông tin sẽ được được sử dụng trong khi chuyển đổi nó thành hoặc từ hình thức bên ngoài.

trướcPOSTGRESQLPhiên bản 8.3, tên của kèo bóng đá euro mảng được tạo luôn là tên của kèo bóng đá euro thành phần với một ký tự dấu gạch dưới (_) Chuẩn bị. (Do đó, tên kèo bóng đá euro là bị hạn chế về chiều dài ở một ký tự ít hơn các tên khác.) Mặc dù điều này vẫn thường như vậy, tên kèo bóng đá euro mảng có thể thay đổi theo điều này trong trường hợp tên hoặc va chạm có độ dài tối đa với Tên kèo bóng đá euro người dùng bắt đầu với dấu gạch dưới. Viết mã đó Phụ thuộc vào quy ước này do đó không phản đối. Thay vào đó, sử dụngPG_TYPE.TYPARRAYĐể định vị kèo bóng đá euro mảng được liên kết với một kèo bóng đá euro đã cho.

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

trướcPOSTGRESQLPhiên bản 8.2, cú phápTạo kèo bóng đá eurotênkhông tồn tại. Cách tạo Một kèo bóng đá euro cơ sở mới là tạo chức năng đầu vào của nó trước. Trong này tiếp cận,PostgreSQLđầu tiên sẽ Xem tên của kèo bóng đá euro dữ liệu mới là kèo bóng đá euro trả về của đầu vào chức năng. kèo bóng đá euro 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 phần còn lại Các hàm I/O. 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 kết quả là vô tình làm lộn xộn các danh mục với các kèo bóng đá euro shell của các lỗi chính tả đơn giản trong định nghĩa chức năng, một kèo bóng đá euro 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.

inPostgreSQLPhiên bản trước 7.3, theo thông lệ để tránh tạo một kèo bóng đá euro vỏ, bằng cách Thay thế các tham chiếu chuyển tiếp của các hàm thành tên kèo bóng đá euro bằng Kiểu mẫu của người giữ chỗOpaque. ThecString39355_39409OpaqueTrước 7.3. ĐẾN Hỗ trợ tải các tệp kết xuất cũ,39508_39523Sẽ chấp nhận các hàm I/O được khai báo bằng cách sử dụngOpaque, nhưng nó sẽ đưa ra một thông báo và thay đổi Khai báo chức năng để sử dụng đúng kèo bóng đá euro.

Ví dụ

Ví dụ này tạo ra một kèo bóng đá euro tổng hợp và sử dụng nó trong a Định nghĩa chức năng:

Tạo kèo bóng đá euro 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 kèo bóng đá euro được liệt kê và sử dụng nó trong bảng sự định nghĩa:

tạo kèo bóng đá euro 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 kèo bóng đá euro ra kiểu dữ liệu cơ sởBoxVà sau đó sử dụng kèo bóng đá euro trong định nghĩa bảng:

Tạo hộp kèo bóng đá euro;

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 kèo bóng đá euro (
    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 bốnfloat4Các yếu tố, chúng ta có thể Thay vào đó sử dụng:

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

sẽ cho phép các số thành phần của giá trị hộp Truy cập bằng cách đăng ký. Nếu không thì kèo bóng đá euro hành xử giống như trước.

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

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

Các ví dụ khác, bao gồm các chức năng đầu vào và đầu ra phù hợp, đang ởPhần 35.11.

Tương thích

Hình thức đầu tiên củaTạo kèo bóng đá euroLệnh, tạo ra một kèo bóng đá euro tổng hợp, phù hợp vớiSQLTiêu chuẩn. Các hình thức khác làPostgreSQLPhần mở rộng. TheTạo kèo bóng đá eurocâu lệnh trongSQLTiêu chuẩn cũng xác định các biểu mẫu khác không được triển khai trongPostgreSQL.

Khả năng tạo kèo bóng đá euro tổng hợp với các thuộc tính bằng không MộtPostgreSQL-Specific độ lệch Từ tiêu chuẩn (tương tự đếnkèo bóng đá euro BÀN).