Phiên bản không được hỗ trợ:7.0 / 6.5 / 6.4
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 kèo bóng đá cúp c2 trang chohiện tạiPhiên bản hoặc kèo bóng đá cúp c2 trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Tạo kèo bóng đá cúp c2 tử

tên

Tạo kèo bóng đá cúp c2 tử - Xác định kèo bóng đá cúp c2 tử người dùng mới
Tạo kèo bóng đá cúp c2 tửtên(Quy trình =func_name[, leftarg =Type1] [, Rightarg =type2]
     [, Commutator =com_op] [, Negator =neg_op]
     [, Hạn chế =res_proc] [, tham gia =tham gia_proc]
     [, Băm] [, sort1 =left_sort_op] [, sort2 =Right_Sort_op])

Đầu vào

tên

kèo bóng đá cúp c2 tử sẽ được xác định. Xem bên dưới để được cho phép ký tự.

func_name

Hàm được sử dụng để triển khai kèo bóng đá cúp c2 tử này.

Type1

Loại đối số bên trái của kèo bóng đá cúp c2 tử, nếu bất kì. Tùy chọn này sẽ bị bỏ qua cho một nhà tư tưởng bên trái kèo bóng đá cúp c2 tử.

TYPE2

Loại đối số bên phải của kèo bóng đá cúp c2 tử, nếu bất kì. Tùy chọn này sẽ bị bỏ qua cho một quyền tựa bên phải kèo bóng đá cúp c2 tử.

com_op

Người giao dịch của kèo bóng đá cúp c2 tử này.

neg_op

Công cụ phủ định của kèo bóng đá cúp c2 tử này.

res_proc

Chức năng ước tính chọn lọc hạn chế cho điều này kèo bóng đá cúp c2 tử.

tham gia_proc

Chức năng ước tính chọn lọc tham gia cho điều này kèo bóng đá cúp c2 tử.

băm

Cho biết kèo bóng đá cúp c2 tử này có thể hỗ trợ tham gia băm.

left_sort_op

Nếu kèo bóng đá cúp c2 tử này có thể hỗ trợ tham gia hợp nhất, kèo bóng đá cúp c2 tử sắp xếp loại dữ liệu bên trái của kèo bóng đá cúp c2 tử này.

Right_sort_op

Nếu kèo bóng đá cúp c2 tử này có thể hỗ trợ nối hợp nhất, kèo bóng đá cúp c2 tử sắp xếp loại dữ liệu bên phải của kèo bóng đá cúp c2 tử này.

Đầu ra

kèo bóng đá cúp c2

Tin nhắn được trả về nếu người vận hành thành công kèo bóng đá cúp c2.

Mô tả

Tạo kèo bóng đá cúp c2 tửXác định kèo bóng đá cúp c2 tử mới,tên. Người dùng xác định người vận hành trở thành chủ sở hữu của nó.

người vận hànhtênlà a Trình tự lên đến các ký tự được đặt tên Danh sách sau:

+-*/< = ~! @#%^& | `? $:

Có kèo bóng đá cúp c2 vài hạn chế đối với sự lựa chọn của bạn tên:
  • "$" và ":" Không thể được định nghĩa là kèo bóng đá cúp c2 ký tự đơn các nhà khai thác, mặc dù chúng có thể là kèo bóng đá cúp c2 phần của đa nhân vật Tên người vận hành.

  • "-" và "/*" không thể xuất hiện ở bất cứ đâu trong tên kèo bóng đá cúp c2 tử, Vì chúng sẽ được coi là khởi đầu của một bình luận.

  • Tên kèo bóng đá cúp c2 tử đa nhân vật không thể kết thúc bằng "+" hoặc "-", trừ khi tên cũng chứa ít nhất một trong số này ký tự:

    ~! @#%^& | `? $:

    Ví dụ,@-là tên kèo bóng đá cúp c2 tử được phép, nhưng*-không. Hạn chế này cho phépPostgresđể phân tích cú pháp Các truy vấn tuân thủ SQL mà không yêu cầu khoảng trống giữa mã thông báo.

Lưu ý:Khi làm việc với kèo bóng đá cúp c2 tử tiêu chuẩn không SQL Tên, bạn thường sẽ cần phân tách các kèo bóng đá cúp c2 tử liền kề với không gian để tránh sự mơ hồ. Ví dụ, nếu bạn có được xác định là một kèo bóng đá cúp c2 tử trợ cấp bên trái có tên "@", bạn không thể viếtx*@y; Bạn phải viếtX* @YĐể đảm bảo rằngPostgresĐọc nó dưới dạng hai tên kèo bóng đá cúp c2 tử không phải một.

kèo bóng đá cúp c2 tử "! =" Được ánh xạ tới "<" trên đầu vào, vì vậy những điều này Hai tên luôn tương đương.

Ít nhất kèo bóng đá cúp c2 trong những Leftarg và Rightarg phải được xác định. Vì Các nhà khai thác nhị phân, cả hai nên được xác định. Cho đúng người vận hành, chỉ cần xác định leftarg, trong khi đối với trái Chỉ nên xác định người vận hành.

Thefunc_nameThủ tục phải đã được xác định trước đây bằng cách sử dụngkèo bóng đá cúp c2 CHỨC NĂNGvà phải được xác định để chấp nhận số lượng chính xác của Đối số (kèo bóng đá cúp c2 hoặc hai) của các loại được chỉ định.

Nhà điều hành cổ góp phải được xác định nếu có tồn tại, vì vậy cái đóPostgresCó thể đảo ngược thứ tự của các kèo bóng đá cúp c2 hạng nếu nó muốn. Ví dụ: nhà điều hành khu vực không có Nhà điều hành, khu vực-lớn hơn, . Do đó, truy vấn Trình tối ưu hóa có thể tự do chuyển đổi:

Box '((0,0), (1,1))'  myboxes.descrip
đến
myboxes.descrip <<< Box '((0,0), (1,1))'

Điều này cho phép mã thực thi luôn sử dụng cái sau Biểu diễn và đơn giản hóa Trình tối ưu hóa truy vấn phần nào.

Tương tự, nếu có kèo bóng đá cúp c2 tử tiêu cực thì nó nên được xác định. Giả sử rằng một nhà điều hành, bình đẳng khu vực, ===, tồn tại, như cũng như một khu vực không bằng nhau,! ==. Liên kết tiêu cực cho phép truy vấn Trình tối ưu hóa để đơn giản hóa

không phải myboxes.descrip === box '((0,0), (1,1))'
đến
MyBoxes.Description! == Box '((0,0), (1,1))'

Nếu tên người vận hành trước được cung cấp,PostgresTìm kiếm nó trong danh mục. Nếu như nó được tìm thấy và nó chưa có một người làm việc, sau đó Mục nhập của người giao cung được cập nhật để có được nhà điều hành làm nhân viên của nó. Điều này áp dụng cho người phủ định, là tốt. Điều này là để cho phép định nghĩa của hai kèo bóng đá cúp c2 tử là Người giao cổ hoặc những người tiêu cực của nhau. Nhà điều hành đầu tiên nên được xác định mà không có người giao cổ hoặc tiêu cực (như phù hợp). Khi kèo bóng đá cúp c2 tử thứ hai được xác định, hãy đặt tên đầu tiên Là người giao dịch hoặc tiêu cực. Đầu tiên sẽ được cập nhật như một bên tác dụng. (Kể từ Postgres 6.5, nó cũng hoạt động để có cả hai người vận hành tham khảo nhau.)

Các tùy chọn băm, sắp xếp và sắp xếp Trình tối ưu hóa truy vấn trong việc thực hiện tham gia.Postgresluôn có thể đánh giá tham gia (tức là, Xử lý kèo bóng đá cúp c2 mệnh đề với hai biến Tuple được phân tách bằng kèo bóng đá cúp c2 nhà điều hành trả về kèo bóng đá cúp c2 boolean) bằng cách thay thế lặp [Wong76]. Ngoài ra,Postgrescó thể sử dụng thuật kèo bóng đá cúp c2 băm tham gia dọc theo các dòng của [SHAP86]; Tuy nhiên, nó phải biết liệu chiến lược này có được áp dụng hay không. Các Thuật kèo bóng đá cúp c2 băm nhỏ hiện tại chỉ chính xác cho các kèo bóng đá cúp c2 tử đại diện cho các bài kiểm tra bình đẳng; Hơn nữa, sự bình đẳng của kiểu dữ liệu phải có nghĩa là bình đẳng bitwise của biểu diễn của loại. (Ví dụ: một kiểu dữ liệu chứa các bit chưa sử dụng không vật chất đối với các bài kiểm tra bình đẳng không thể được băm.) Các băm cờ chỉ cho trình tối ưu hóa truy vấn rằng một hàm băm có thể một cách an toàn được sử dụng với kèo bóng đá cúp c2 tử này.

Tương tự, hai kèo bóng đá cúp c2 tử sắp xếp cho biết truy vấn Trình tối ưu hóa cho dù Merge-Sort là một chiến lược tham gia có thể sử dụng và Các nhà khai thác nên được sử dụng để sắp xếp hai lớp kèo bóng đá cúp c2 hạng. Loại Các nhà khai thác chỉ nên được cung cấp cho một kèo bóng đá cúp c2 tử bình đẳng và Họ nên tham khảo các nhà khai thác ít hơn cho bên trái và bên phải Kiểu dữ liệu bên tương ứng.

Nếu các chiến lược tham gia khác được tìm thấy là thực tế,PostgresSẽ thay đổi Trình tối ưu hóa và hệ thống thời gian chạy để sử dụng chúng và sẽ yêu cầu Thông số kỹ thuật bổ sung khi một kèo bóng đá cúp c2 tử được xác định. May mắn thay, cộng đồng nghiên cứu phát minh ra các chiến lược tham gia mới không thường xuyên và tính tổng quát của người dùng được xác định Các chiến lược không được cảm nhận là xứng đáng với sự phức tạp liên quan.

Tùy chọn hạn chế và tham gia hỗ trợ trình tối ưu hóa truy vấn Ước tính kích thước kết quả. Nếu kèo bóng đá cúp c2 mệnh đề của biểu mẫu:

myboxes.descrip <<< hộp '((0,0), (1,1))'
có mặt trong trình độ, sau đóPostgrescó thể phải ước tính tỷ lệ của Các trường hợp trong các hộp đựng thỏa mãn mệnh đề. Hàmres_procphải là kèo bóng đá cúp c2 chức năng (có nghĩa là nó đã được xác định bằng cách sử dụngkèo bóng đá cúp c2 chức năng) chấp nhận các đối số của Các loại dữ liệu chính xác và trả về kèo bóng đá cúp c2 số điểm nổi. Truy vấn Trình tối ưu hóa chỉ cần gọi chức năng này, chuyển tham số((0,0), (1,1))và nhân kết quả bằng cách kích thước quan hệ để có được số lượng phiên bản dự kiến.

Tương tự, khi các kèo bóng đá cúp c2 tử của kèo bóng đá cúp c2 tử, cả hai đều chứa Các biến thể hiện, trình tối ưu hóa truy vấn phải ước tính kích thước của kết quả tham gia. Chức năng tham gia_proc sẽ trả về một Số điểm nổi sẽ được nhân với Hồng y của hai lớp liên quan để tính kèo bóng đá cúp c2 Kích thước kết quả.

Sự khác biệt giữa hàm

my_procedure_1 (myboxes.descrip, box '((0,0), (1,1))')
và người vận hành
MyBoxes.Descrip === Box '((0,0), (1,1))'
Postgrescố gắng Tối ưu hóa các kèo bóng đá cúp c2 tử và có thể quyết định sử dụng một chỉ mục để hạn chế Không gian tìm kiếm khi các nhà khai thác tham gia. Tuy nhiên, không có cố gắng tối ưu hóa các chức năng và chúng được thực hiện bởi vũ phu lực lượng. Hơn nữa, các chức năng có thể có bất kỳ số lượng đối số nào trong khi người vận hành bị giới hạn ở một hoặc hai.

Ghi chú

Tham khảo chương về kèo bóng đá cúp c2 tử trongHướng dẫn sử dụng PostgreSQLĐể biết thêm thông tin. Tham khảoDrop kèo bóng đá cúp c2 tửđến Xóa các kèo bóng đá cúp c2 tử do người dùng xác định khỏi cơ sở dữ liệu.

sử dụng

Lệnh sau đây xác định một kèo bóng đá cúp c2 tử mới, bình đẳng khu vực, Đối với kiểu dữ liệu hộp.

Tạo kèo bóng đá cúp c2 tử === (
   Leftarg = hộp,
   Rightarg = hộp,
   Quy trình = Area_equal_Procedure,
   Cổ lưu = ===,
   Người phủ định =! ==,
   Hạn chế = Area_Restriction_Procedure,
   Tham gia = area_join_procedure,
   Làm băm,
   Sort1 = <<<,
   Sắp xếp2 = <<<
);

Tương thích

SQL92

Tạo kèo bóng đá cúp c2 tửlà kèo bóng đá cúp c2PostgresPhần mở rộng. Không cóTạo kèo bóng đá cúp c2 tửtuyên bố trongSQL92.