Postgresql 8.1.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | Tiếp theo |
Tạo kèo bóng đá việt namtênnhư (Attribution_name data_type[, ...]) Tạo kèo bóng đá việt namtên( Input =input_function, Đầu ra =output_function[, nhận =recean_function] [, Send =send_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ữ] [, Mặc định =mặc định] [, Phần tử =Element] [, Delimiter =Delimiter] )
Tạo kèo bóng đá việt namĐă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 đá việt nam trở thành chủ sở hữu của nó.
Nếu một tên lược đồ được đưa ra thì kèo bóng đá việt nam được tạo trong lược đồ cụ thể. Nếu không, nó được tạo ra trong lược đồ hiện tại. Tên kèo bóng đá việt nam phải khác với tên của bất kỳ kèo bóng đá việt nam hiện có hoặc miền trong cùng một lược đồ. (Vì các bảng đã liên kết kèo bóng đá việt nam dữ liệu, tên kèo bóng đá việt nam cũng phải khác với tên của bất kỳ bảng hiện có nào trong cùng một lược đồ.)
Hình thức đầu tiên củaTạo kèo bóng đá việt namTạo kèo bóng đá việt nam tổng hợp. kèo bóng đá việt nam 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. Đây thực chất là Giống như kèo bóng đá việt nam hàng của bảng, nhưng sử dụngTạo kèo bóng đá việt nam12809_12995
Hình thức thứ hai củaTạo kèo bóng đá việt namTạo một kèo bóng đá việt nam cơ sở mới (kèo bóng đá việt nam vô hướng). 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ụngkèo bóng đá việt nam chức năng) trước khi xác định kiểu. kèo bóng đá việt nam chức năng hỗ trợinput_functionvàoutput_functionđược yêu cầu, trong khi Chức năngnhận_function, Send_FunctionvàPhân tích_Function13760_13863
Theinput_functionChuyển đổi biểu diễn văn bản bên ngoài của kèo bóng đá việt nam 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 đá việt nam.output_functionThực hiện chuyển đổi ngược. Hàm đầu vào có thể là được tuyên bố là lấy một đối số của kèo bóng đá việt namcStringhoặc khi thực hiện ba đối số của các kèo bóng đá việt namcString, 14363_14368, 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 đá việt nam (ngoại trừ các kèo bóng đá việt nam mảng, thay vào đó nhận phần tử của chúng kèo bóng đá việt nam oid) và thứ ba làTYPMOD14645_14911cString.
Tùy chọnnhận_function15018_15679Nội bộhoặc khi thực hiện ba đối số của các kèo bóng đá việt namNội bộ, OID, Số nguyên. Đối số đầu tiên là một con trỏ đến aStringInfo15923_16141send_function16184_16483bytea.
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 đá việt nam mới, khi chúng phải được tạo ra trước khi kèo bóng đá việt nam có thể được tạo ra. Câu trả lời là chức năng đầu vào phải được tạo trước, sau đó là hàm đầu ra (và I/O nhị phân chức năng nếu muốn) và cuối cùng là kiểu dữ liệu.PostgreSQLTrước tiên sẽ thấy tên của Kiểu dữ liệu mới là kèo bóng đá việt nam trả về của hàm đầu vào. Nó sẽ Tạo A"shell"17092_17330Tạo kèo bóng đá việt namThay thế mục nhập Shell bằng định nghĩa kèo bóng đá việt nam hoàn chỉnh và kèo bóng đá việt nam mới có thể được sử dụng.
Tùy chọnPhân tích_FunctionThực hiện kèo bóng đá việt nam 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 đá việt nam"bằng"và"Ít hơn"toán tử, nếu có là một lớp toán tử B-cây mặc định cho kèo bóng đá việt nam. Đối với phi Scalar Các kèo bóng đá việt nam hành vi này có thể không phù hợp, vì vậy nó có thể ghi đè bằng cách chỉ định một chức năng phân tích tùy chỉnh. Các chức năng phân tích phải được tuyên bố để lấy một đối số duy nhất về kiểuNội bộ, và trả lại ABooleanKết quả. API chi tiết để phân tích kèo bóng đá việt nam 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 đá việt nam 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 đá việt nam, 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 đá việt nam có thể được cố định độ dài, trong trường hợp đóInternalLightslà một số nguyên dương hoặc Độ dài biến, được biểu thị bằng cách cài đặtInternalLightsđế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 đá việt nam 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 các giá trị của kèo bóng đá việt nam 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 được vượt qua các kèo bóng đá việt nam giá trị có Biểu diễn bên trong lớn hơn kích thước củaDatumkèo bóng đá việt nam (4 byte trên hầu hết các máy, 8 byte trên một vài).
The19585_19596tham 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 đá việt nam 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 đá việt nam dữ liệu có độ dài thay đổi. (Chỉ mộttrơnđược phép Các kèo bóng đá việt nam có độ dài cố định.)trơnChỉ định Dữ liệu đó của kèo bóng đá việt nam 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 kèo bóng đá việt nam mục với 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 tốt hơnmở rộngvàbên ngoàiMục.)
Giá trị mặc định có thể được chỉ định, trong trường hợp người dùng muốn kèo bóng đá việt nam cột của kiểu dữ liệu mặc định là một cái gì đó khác vớ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ể.)
Để chỉ ra rằng một kèo bóng đá việt nam là một mảng, chỉ định kèo bóng đá việt nam của các phần tử mảng bằng cách sử dụngElementkhóa từ. Ví dụ: để xác định một loạt kèo bóng đá việt nam số nguyên 4 byte (INT4), Chỉ địnhElement = int421633_21685
để 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 kèo bóng đá việt nam này,Delimitercó thể được đặt thành một cụ thể tính cách. 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 kèo bóng đá việt nam phần tử mảng, không phải kèo bóng đá việt nam mảng.
Bất cứ khi nào một kèo bóng đá việt nam dữ liệu cơ sở do người dùng định nghĩa,PostgreSQLTự động tạo một kèo bóng đá việt nam mảng liên quan, có tên bao gồm Tên của kèo bóng đá việt nam cơ sở được chuẩn bị với một dấu gạch dưới. Trình phân tích cú pháp hiểu quy ước đặt tên này và dịch các yêu cầu cho Các cột kèo bóng đá việt namfoo []vào các yêu cầu cho kèo bóng đá việt nam_foo. Các điều khoản ngầm được tạo ra kèo bóng đá việt nam mảng là độ dài thay đổi và sử dụng đầu vào tích hợp và Chức năng đầu ramảng_invàArray_out.
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 đá việt nam mảng tự động. Trường hợp duy nhất mà nó hữu ích cho sử dụngElementlà khi bạn đang tạo ra một kèo bóng đá việt nam có độ dài cố định xảy ra là một mảng của một Số thứ giống hệt nhau và bạn muốn cho phép những thứ này được truy cập trực tiếp bằng cách đăng ký, ngoài Bất cứ hoạt động nào bạn dự định cung cấp cho kèo bóng đá việt nam dưới dạng trọn. Ví dụ: gõtêncho phép nó cấu thànhCharkèo bóng đá việt nam yếu tố cần truy cập cách này. A 2-Dđiểmkèo bóng đá việt nam có thể cho phép hai số thành phần của nó được truy cập nhưđiểm [0]vàđiểm [1]. Lưu ý rằng cơ sở này chỉ hoạt động cho các kèo bóng đá việt nam có độ dài cố định có Mẫu bên trong chính xác là một chuỗi có độ dài cố định giống hệt nhau Cánh đồng. Một kèo bóng đá việt nam độ dài biến có thể đăng ký phải có Biểu diễn nội bộ tổng quát được sử dụng bởimảng_invàArray_out. Vì lý do lịch sử (tức là, điều này rõ ràng là sai nhưng nó Quá muộn để thay đổi nó), đăng ký mảng có độ dài cố định Các kèo bóng đá việt nam bắt đầu từ 0, thay vì từ một Mảng độ dài biến.
Tên (tùy chọn Lược đồ theo trình độ) kèo bóng đá việt nam.
Tên của một thuộc tính (cột) cho tổng hợp kiểu.
Tên của một kèo bóng đá việt nam dữ liệu hiện có để trở thành một cột của kèo bóng đá việt nam tổng hợp.
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 đá việt nam sang dạng nội bộ của nó.
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 đá việt nam sang dạng văn bản bên ngoài của nó.
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 đá việt nam thành dạng nội bộ của nó.
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 đá việt nam sang dạng nhị phân bên ngoài của nó.
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.
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 đá việt nam mới. Mặc định giả định là nó có độ dài thay đổi.
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.
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àPlain.
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.
kèo bóng đá việt nam được tạo là một mảng; Điều này chỉ định kèo bóng đá việt nam của các phần tử mảng.
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 đá việt nam này.
Tên kèo bóng đá việt nam do người dùng xác định không thể bắt đầu bằng dấu gạch dưới tính cách (_) và chỉ có thể là 62 ký tự dài (hoặc nói chungĐược đặt tên- 2, thay vìĐược đặt tên- 1 ký tự cho phép khác tên). Tên tên bắt đầu với dấu gạch dưới được dành cho Tên kèo bóng đá việt nam mảng được tạo bên trong.
inPostgreSQLPhiên bản trước 7.3, theo thông lệ để tránh tạo kèo bóng đá việt nam vỏ bằng cách thay thế các tham chiếu chuyển tiếp của các hàm đến tên kèo bóng đá việt nam với Đồ giả giả danhOpaque. ThecStringĐối số và kết quả cũng phải được tuyên bố là28320_28328Trước 7.3. ĐẾN Hỗ trợ tải kèo bóng đá việt nam tệp kết xuất cũ,kèo bóng đá việt nam KIỂUSẽ chấp nhận kèo bóng đá việt nam chức năng được khai báo bằng cách sử dụngOpaque, nhưng nó sẽ đưa ra thông báo và thay đổi Tuyên bố của chức năng để sử dụng đúng kèo bóng đá việt nam.
Ví dụ này tạo ra một kèo bóng đá việt nam tổng hợp và sử dụng nó trong a Định nghĩa chức năng:
Tạo kèo bóng đá việt nam 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 kèo bóng đá việt nam ra kiểu dữ liệu cơ sởBoxvà sau đó sử dụng kèo bóng đá việt nam trong định nghĩa bảng:
Tạo hộp kèo bóng đá việt nam ( 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ốnfloat4kèo bóng đá việt nam yếu tố, chúng ta có thể Thay vào đó sử dụng
Tạo hộp kèo bóng đá việt nam ( 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 đá việt nam hành xử giống như trước.
29764_29843
Tạo kèo bóng đá việt nam bigobj ( Input = lo_filein, output = lo_fileout, InternalLights = Biến ); Tạo bảng BIG_OBJS ( ID Số nguyên, obj bigobj );
kèo bóng đá việt nam ví dụ khác, bao gồm kèo bóng đá việt nam chức năng đầu vào và đầu ra phù hợp, đang ởPhần 32.11.
thisTạo kèo bóng đá việt namLệnh là APostgreSQLPhần mở rộng. Có mộtTạo kèo bóng đá việt namcâu lệnh trongSQLTiêu chuẩn hơn là chi tiết khác nhau.