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

tỷ lệ kèo bóng đá tối nay nayTạo KIỂU

tên

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

Synopsis

Tạo tỷ lệ kèo bóng đá tối nayTypename(input =input_function, output =output_function, InternalLight =InternalLights| Biến
    [, Mặc định =mặc định]
    [, Phần tử =Element] [, Delimiter =Delimiter]
    [, PassedByValue]
    [, Căn chỉnh =Căn chỉnh]
    [, Lưu trữ =lưu trữ]
)

Tạo tỷ lệ kèo bóng đá tối nayTypenamenhư
    (Cột_name data_type[, ...])

Đầu vào

typename

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

InternalLights

Một giá trị theo nghĩa đen, chỉ định độ dài bên trong thuộc tỷ lệ kèo bóng đá tối nay mới.

input_function

Tên của một hàm, được tạo bởiTạo chức năng, chuyển đổi dữ liệu từ Biểu mẫu bên ngoài của nó sang dạng nội bộ của tỷ lệ kèo bóng đá tối nay.

output_function

Tên của một hàm, được tạo bởiTạo chức năng, chuyển đổi dữ liệu từ Mẫu nội bộ của nó thành một biểu mẫu phù hợp để hiển thị.

Element

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

Delimiter

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

Mặc định

Giá trị mặc định cho kiểu dữ liệu. Thường thì đây là bị bỏ qua, để mặc định là null.

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, phải làchar, INT2, INT4hoặcDouble; Mặc định làINT4.

lưu trữ

Kỹ thuật 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ộnghoặcchính; Mặc định làtrơn.

Cột_name

Tên của một cột của tỷ lệ kèo bóng đá tối nay tổng hợp.

data_type

Tên của một tỷ lệ kèo bóng đá tối nay dữ liệu hiện có.

đầu ra

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

Tin nhắn được trả về nếu tỷ lệ kèo bóng đá tối nay là thành công tạo.

Mô tả

Tạo tỷ lệ kèo bóng đá tối nayCho phép người dùng Đăng ký một kiểu dữ liệu mới vớiPostgreSQLĐể 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 đá tối nay trở thành chủ sở hữu của nó.

14857_15031current_schema ()). Tên tỷ lệ kèo bóng đá tối nay phải khác biệt Từ tên của bất kỳ tỷ lệ kèo bóng đá tối nay hoặc miền hiện có trong cùng một lược đồ. (Vì các bảng có các tỷ lệ kèo bóng đá tối nay dữ liệu liên quan, tên tỷ lệ kèo bóng đá tối nay cũng phải không xung đột với tên bảng trong cùng lược đồ.)

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

Hình thức đầu tiên củaTạo tỷ lệ kèo bóng đá tối nayTạo một tỷ lệ kèo bóng đá tối nay cơ sở mới (tỷ lệ kèo bóng đá tối nay vô hướng). Nó đòi hỏi Đăng ký hai chức năng (sử dụng chức năng tạo) trước xác định tỷ lệ kèo bóng đá tối nay. Đại diện của một tỷ lệ kèo bóng đá tối nay cơ sở mới là được xác định bởiinput_function,, chuyển đổi biểu diễn bên ngoài của tỷ lệ kèo bóng đá tối nay thành một Đại diện nội bộ có thể sử dụng được bởi các nhà khai thác và chức năng được xác định cho tỷ lệ kèo bóng đá tối nay. Đương nhiên,output_functionThực hiện ngược lại biến đổi. Hàm đầu vào có thể được khai báo là lấy Một đối số của tỷ lệ kèo bóng đá tối naycStringhoặc như Lấy ba đối số của các tỷ lệ kèo bóng đá tối naycString, OID, INT4. (The Đối số đầu tiên là văn bản đầu vào dưới dạng chuỗi C, thứ hai Đối số là tỷ lệ kèo bóng đá tối nay phần tử trong trường hợp đây là tỷ lệ kèo bóng đá tối nay mảng và Thứ ba làTYPMODcủa cột đích, nếu được biết.) Nó sẽ trả về một giá trị của tỷ lệ kèo bóng đá tối nay dữ liệu chính nó. Hàm đầu ra có thể được tuyên bố là lấy một đối số của kiểu dữ liệu mới hoặc khi thực hiện hai đối số trong đó tỷ lệ kèo bóng đá tối nay thứ hai là tỷ lệ kèo bóng đá tối nayOID. (The Đối số thứ hai một lần nữa là tỷ lệ kèo bóng đá tối nay phần tử mảng cho mảng tỷ lệ kèo bóng đá tối nay.) chức năng đầu ra sẽ trả về tỷ lệ kèo bóng đá tối naycString.

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 đầu vào của tỷ lệ kèo bóng đá tối nay mới, khi chúng phải được tạo trước tỷ lệ kèo bóng đá tối nay mới 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à chức năng đầu ra, sau đó là kiểu dữ liệu.PostgreSQLĐầu tiên sẽ xem Tên của tỷ lệ kèo bóng đá tối nay dữ liệu mới là tỷ lệ kèo bóng đá tối nay trả về của đầu vào chức năng. Nó sẽ tạo một"shell"tỷ lệ kèo bóng đá tối nay, đơn giản là mục nhập trình giữ chỗ trongPG_TYPEvà liên kết định nghĩa hàm đầu vào đến tỷ lệ kèo bóng đá tối nay vỏ. Tương tự như chức năng đầu ra sẽ được liên kết đến tỷ lệ kèo bóng đá tối nay shell (hiện đã có). Cuối cùng,Tạo tỷ lệ kèo bóng đá tối nayThay thế mục nhập Shell bằng A Định nghĩa tỷ lệ kèo bóng đá tối nay hoàn chỉnh và tỷ lệ kèo bóng đá tối nay mới có thể được sử dụng.

Lưu ý:inPostgreSQLPhiên bản trước 7.3, đó là Thông thường để tránh tạo tỷ lệ kèo bóng đá tối nay shell bằng cách thay thế Các tham chiếu chuyển tiếp của các chức năng đến tên tỷ lệ kèo bóng đá tối nay với trình giữ chỗ giả tỷ lệ kèo bóng đá tối nayOpaque. ThecstringĐầu vào và kết quả cũng có được tuyên bố làOpaque18203_18264Tạo tỷ lệ kèo bóng đá tối naySẽ chấp nhận các chức năng được khai báo sử dụngOpaque, nhưng nó sẽ phát hành một Thông báo và thay đổi khai báo của chức năng để sử dụng đúng tỷ lệ kèo bóng đá tối nay.

Các tỷ lệ kèo bóng đá tối nay dữ liệu cơ sở mới có thể được cố định, trong trường hợp đóInternalLightslà tích cực Số nguyên 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 tỷ lệ kèo bóng đá tối nay có độ dài thay đổi phải bắt đầu với một Số nguyên cho tổng chiều dài của giá trị này của tỷ lệ kèo bóng đá tối nay.

Để chỉ ra rằng một tỷ lệ kèo bóng đá tối nay là một mảng, chỉ định tỷ lệ kèo bóng đá tối nay của các phần tử mảng bằng cách sử dụng19159_19168Từ khóa. Ví dụ: để xác định một loạt các số nguyên 4 byte ("int4"), chỉ định

Element = int4

Thông tin chi tiết về các tỷ lệ kèo bóng đá tối nay mảng xuất hiện bê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 đá tối nay 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 tỷ lệ kèo bóng đá tối nay phần tử mảng, không phải tỷ lệ kèo bóng đá tối nay mảng.

19764_19924mặ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ể.)

Cờ tùy chọn,passedByValue20183_20389Datumtỷ lệ kèo bóng đá tối nay (bốn byte trên hầu hết các máy, tám byte trên một vài).

TheCăn chỉnhTừ khóa 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 tỷ lệ kèo bóng đá tối nay 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ữTừ khóa 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 đá tối nay dữ liệu có độ dài thay đổi (chỉ mộttrơnđược phép cho Các tỷ lệ kèo bóng đá tối nay có độ dài cố định).trơnvô hiệu hóa Bánh mì nướng cho kiểu dữ liệu: Nó sẽ luôn được lưu trữ nội tuyến và không được nén.mở rộngđưa ra đầy đủ Khả năng nướng: Hệ thống trước tiên sẽ cố gắng nén một thời gian dài giá trị dữ liệu và sẽ 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. (Các mục dữ liệu với bộ nhớ này Phương pháp vẫn có thể được chuyển ra khỏi bảng chính nếu không có cách khác để làm cho một hàng phù hợp, nhưng chúng sẽ được giữ trong bảng ưu tiên hơnmở rộngbên ngoàiMục.)

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

Mẫu thứ hai củaTạo tỷ lệ kèo bóng đá tối nayTạo một tỷ lệ kèo bóng đá tối nay tổng hợp. tỷ lệ kèo bóng đá tối nay tổng hợp được chỉ định bởi một Danh sách tên cột và tỷ lệ kèo bóng đá tối nay dữ liệu. Đây thực chất là Giống như tỷ lệ kèo bóng đá tối nay hàng của bảng, nhưng sử dụngTạo tỷ lệ kèo bóng đá tối nayTránh sự cần thiết phải tạo ra một thực tế Bảng khi tất cả những gì muốn là xác định một tỷ lệ kèo bóng đá tối nay. MỘT tỷ lệ kèo bóng đá tối nay tổng hợp độc lập là hữu ích vì tỷ lệ kèo bóng đá tối nay trả về của một chức năng.

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

Bất cứ khi nào một tỷ lệ kèo bóng đá tối nay dữ liệu cơ sở do người dùng định nghĩa,PostgreSQLTự động tạo một tỷ lệ kèo bóng đá tối nay mảng liên quan, có tên bao gồm Tên của tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nayfoo []thành yêu cầu cho tỷ lệ kèo bóng đá tối nay_foo. Các điều khoản ngầm được tạo ra tỷ lệ kèo bóng đá tối nay 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_inArray_out.

Bạn có thể hỏi một cách hợp lý"Tại sao lại có MỘTphần tửtùy chọn, nếu hệ thống tự động thực hiện tỷ lệ kèo bóng đá tối nay mảng chính xác? "duy nhất trường hợp sử dụng nó hữu íchElementlà khi bạn đang thực hiện một chiều dài cố định tỷ lệ kèo bóng đá tối nay tình cờ là một mảng n giống hệt nhau Những điều, và bạn muốn cho phép các thứ N đượ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 có kế hoạch cung cấp cho toàn bộ tỷ lệ kèo bóng đá tối nay. Ví dụ: gõtênCho phép cấu thành của nóchars được truy cập theo cách này. A 2-Dđiểmtỷ lệ kèo bóng đá tối nay có thể cho phép hai phao thành phần của nó được truy cập nhưđ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 đá tối nay có độ dài cố định có dạng nội bộ chính xác là Trình tự n các trường có độ dài cố định giống hệt nhau. Một người đăng ký tỷ lệ kèo bóng đá tối nay 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_out. Vì lý do lịch sử (tức là, điều này rõ ràng là sai nhưng đã quá muộn để thay đổi nó), đăng ký các tỷ lệ kèo bóng đá tối nay mảng có độ dài cố định bắt đầu từ số không, thay vì từ một như đối với các mảng có độ dài thay đổi.

ghi chú

Tên tỷ lệ kèo bóng đá tối nay 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 ("_"24890_24946Được đặt tên, thay vì TheĐược đặt tênCác ký tự cho phép tên khác). Tên tên bắt đầu bằng dấu gạch dưới được bảo lưu cho tên tỷ lệ kèo bóng đá tối nay mảng được tạo bên trong.

Ví dụ

Ví dụ này tạo raBoxKiểu dữ liệu và sau đó sử dụng tỷ lệ kèo bóng đá tối nay trong định nghĩa bảng:

Tạo hộp tỷ lệ kèo bóng đá tối nay (Internallym = 16,
    Input = my_procedure_1, output = my_procedure_2);
Tạo bảng myboxes (ID int4, hộp mô tả);

nếuBoxcấu trúc nội bộ của mảng bốnfloat4S, thay vào đó chúng ta có thể nói

25735_25852

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

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

Tạo tỷ lệ kèo bóng đá tối nay bigobj (input = lo_filein, output = lo_fileOut,
    InternalLights = biến);
Tạo bảng BIG_OBJS (ID INT4, OBJ BIGOBJ);

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

Tạo tỷ lệ kèo bóng đá tối nay compfoo AS (F1 int, F2 văn bản);
Tạo hàm getfoo () trả về setof compfoo là 'chọn fooid, fooname từ ngôn ngữ foo' sql;

Tương thích

thisTạo tỷ lệ kèo bóng đá tối naylệnh là APostgreSQLPhần mở rộng. Có mộtTạo tỷ lệ kèo bóng đá tối nayTuyên bố trong SQL99 đó là khá khác nhau về chi tiết.