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
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 đá phápTạo DÀN DIỄN VIÊN

tên

Tạo kèo bóng đá pháp-Xác định một diễn viên mới

Synopsis

Tạo kèo bóng đá pháp (SourcetypeASTargetType)
    Với chức năngfuncname(argtypes)
    [Như nhiệm vụ | Như tiềm ẩn]

Tạo kèo bóng đá pháp (SourcetypeASTargetType)
    Không có chức năng
    [Như nhiệm vụ | Như ẩn]

Mô tả

Tạo kèo bóng đá phápXác định một diễn viên mới. MỘT kèo bóng đá pháp chỉ định cách thực hiện chuyển đổi giữa hai dữ liệu loại. Ví dụ,

Chọn kèo bóng đá pháp (42 làm văn bản);

Chuyển đổi hằng số nguyên 42 thành kèo bóng đá phápTextbằng cách gọi một chức năng được chỉ định trước đó, trong trường hợp nàyText (int4). (Nếu không có phù hợp kèo bóng đá pháp đã được xác định, chuyển đổi không thành công.)

Hai kèo bóng đá pháp có thể là11553_11572,, có nghĩa là chúng có thể được chuyển đổi thành nhau"miễn phí"mà không cần gọi bất kỳ chức năng. Điều này yêu cầu các giá trị tương ứng sử dụng giống nhau Đại diện nội bộ. Chẳng hạn, các kèo bóng đá phápTextVarcharlà nhị phân tương thích.

Theo mặc định, một kèo bóng đá pháp chỉ có thể được gọi bởi một kèo bóng đá pháp rõ ràng yêu cầu, đó là một điều rõ ràngkèo bóng đá pháp (xASTypename)hoặcx::typenameXây dựng.

Nếu kèo bóng đá pháp được đánh dấulàm bài tậpSau đó, nó có thể được gọi hoàn toàn khi gán một giá trị cho a Cột của kiểu dữ liệu đích. Ví dụ: giả sử rằngfoo.f1là một cột kèo bóng đá phápText, sau đó

12557_12594

sẽ được phép nếu kèo bóng đá pháp từ loạiSố nguyênđể kèo bóng đá phápTextđược đánh dấulàm bài tập, nếu không thì không. (Chúng tôi thường sử dụng thuật ngữkèo bóng đá pháp gánĐể mô tả loại kèo bóng đá pháp này.)

Nếu kèo bóng đá pháp được đánh dấunhư ẩn ửngSau đó, nó có thể được gọi hoàn toàn trong bất kỳ bối cảnh nào, cho dù gán hoặc nội bộ trong một biểu thức. Ví dụ, kể từ||TakeTexttoán hạng,

Chọn 'Thời gian là' || Hiện nay();

sẽ chỉ được phép nếu kèo bóng đá pháp từ loạidấu thời gianđếnTextđược đánh dấunhư ẩn ửng. Nếu không nó sẽ là cần thiết để viết dàn kèo bóng đá pháp một cách rõ ràng, ví dụ

Chọn 'Thời gian là' || kèo bóng đá pháp (bây giờ () dưới dạng văn bản);

(Chúng tôi thường sử dụng thuật ngữẩn dàn kèo bóng đá phápĐể mô tả loại kèo bóng đá pháp này.)

Thật khôn ngoan khi bảo thủ về việc đánh dấu các kèo bóng đá pháp là tiềm ẩn. Một sự dư thừa của các đường dẫn đúc ngầm có thể gây raPostgreSQL13831_14174INT2đếnINT4Có thể một cách hợp lý ngầm, nhưng kèo bóng đá pháp từfloat8đếnINT4Có lẽ chỉ nên được gán. Các kèo bóng đá pháp phân loại loại chéo, chẳng hạn nhưTextđếnINT4, tốt nhất là chỉ rõ ràng.

14513_14770

tham số

Sourcetype

Tên của kiểu dữ liệu nguồn của dàn kèo bóng đá pháp.

TargetType

Tên của kiểu dữ liệu đích của dàn kèo bóng đá pháp.

funcname(argtypes)

Hàm được sử dụng để thực hiện kèo bóng đá pháp. Tên chức năng có thể là sơ đồ đủ điều kiện. Nếu không, chức năng sẽ Nhìn lên trong đường dẫn tìm kiếm lược đồ. Kết quả của chức năng Kiểu dữ liệu phải khớp với loại mục tiêu của dàn kèo bóng đá pháp. Của nó Các đối số được thảo luận dưới đây.

không có chức năng

cho biết loại nguồn và loại mục tiêu là Tương thích nhị phân, vì vậy không cần phải thực hiện chức năng để thực hiện kèo bóng đá pháp.

làm bài tập

cho biết rằng các kèo bóng đá pháp có thể được gọi một cách ngầm bối cảnh gán.

như ẩn ửng

chỉ ra rằng các kèo bóng đá pháp có thể được gọi ngầm trong bất kỳ bối cảnh.

16233_16417Số nguyên; nó nhận được công cụ sửa đổi kèo bóng đá pháp được liên kết với kèo bóng đá pháp đích hoặc-116549_16619Boolean; nó nhận đượcTRUENếu kèo bóng đá pháp là một kèo bóng đá pháp rõ ràng,falseNếu không. (Thật kỳ lạ, các yêu cầu về thông số SQL các hành vi khác nhau cho các kèo bóng đá pháp rõ ràng và ngầm trong một số trường hợp. Đối số này được cung cấp cho các chức năng phải thực hiện các kèo bóng đá pháp như vậy. Bạn không nên thiết kế Các loại dữ liệu riêng để điều này quan trọng.)

Thông thường, một diễn viên phải có dữ liệu nguồn và mục tiêu khác nhau loại. Tuy nhiên, nó được phép khai báo một diễn viên với Các loại nguồn và mục tiêu nếu nó có chức năng triển khai kèo bóng đá pháp với nhiều hơn một đối số. Điều này được sử dụng để đại diện Các chức năng ép buộc chiều dài cụ thể trong các danh mục hệ thống. Hàm được đặt tên được sử dụng để ép buộc một giá trị của loại Loại giá trị sửa đổi được đưa ra bởi đối số thứ hai của nó. (Kể từ khi Ngữ pháp hiện chỉ cho phép một số loại dữ liệu tích hợp Có loại sửa đổi loại, tính năng này không được sử dụng cho người dùng do người dùng xác định Các loại mục tiêu, nhưng chúng tôi đề cập đến nó để hoàn thiện.)

Khi một kèo bóng đá pháp có các loại nguồn và mục tiêu khác nhau và một chức năng mất nhiều hơn một đối số, nó đại diện cho chuyển đổi từ loại này sang loại khác và áp dụng một chiều dài cưỡng chế trong một bước duy nhất. Khi không có mục nào như vậy, Sự ép buộc của một loại sử dụng công cụ sửa đổi loại liên quan đến hai bước, một để chuyển đổi giữa các loại dữ liệu và một thứ hai để áp dụng người sửa đổi.

Ghi chú

sử dụngPostgreSQL: Tàiđến Xóa các kèo bóng đá pháp do người dùng xác định.

Hãy nhớ rằng nếu bạn muốn có thể chuyển đổi các loại các cách bạn cần khai báo rõ ràng về các kèo bóng đá pháp.

trướcPostgreSQL7.3, Mọi chức năng có cùng tên với kiểu dữ liệu, được trả về loại dữ liệu đó và lấy một đối số thuộc loại khác là tự động là một chức năng đúc. Công ước này đã bị bỏ rơi đối mặt với việc giới thiệu các lược đồ và có thể Đại diện cho các kèo bóng đá pháp tương thích nhị phân trong các danh mục hệ thống. Các Các chức năng kèo bóng đá pháp tích hợp vẫn tuân theo sơ đồ đặt tên này, nhưng chúng phải được hiển thị dưới dạng kèo bóng đá pháp trong danh mục hệ thốngpg_cast

18959_19217typename(x). Ký hiệu này trên thực tế không có gì hơn cũng không nhỏ hơn một cuộc gọi của chức năng thực hiện kèo bóng đá pháp; nó là Không được coi là đặc biệt như một kèo bóng đá pháp. Nếu các chức năng chuyển đổi của bạn là không được đặt tên để hỗ trợ hội nghị này thì bạn sẽ ngạc nhiên Người dùng. TừPostgreSQLcho phép quá tải của cùng một tên hàm với đối số khác nhau Các kèo bóng đá pháp, không có khó khăn gì trong việc chuyển đổi nhiều các chức năng từ các kèo bóng đá pháp khác nhau mà tất cả đều sử dụng kèo bóng đá pháp mục tiêu tên.

Lưu ý:Có một lời nói dối nhỏ trong phần trước Đoạn: Vẫn còn một trường hợp trong đópg_castsẽ được sử dụng để giải quyết ý nghĩa của một cuộc gọi chức năng rõ ràng. Nếu một chức năng gọitên(x) khớp không có chức năng thực tế, nhưngtênlà tên của kiểu dữ liệu vàpg_castHiển thị tương thích nhị phân đúc theo kèo bóng đá pháp này từ kèo bóng đá phápX, thì cuộc gọi sẽ được hiểu là một kèo bóng đá pháp rõ ràng. Ngoại lệ này được thực hiện để Các kèo bóng đá pháp tương thích nhị phân có thể được gọi bằng cách sử dụng chức năng cú pháp, mặc dù chúng thiếu bất kỳ chức năng nào.

Ví dụ

Để tạo một kèo bóng đá pháp từ loạiTextđể kèo bóng đá phápINT4Sử dụng chức năngint4 (văn bản):

Tạo kèo bóng đá pháp (Text as Int4) với hàm int4 (văn bản);

(kèo bóng đá pháp này đã được xác định trước trong hệ thống.)

Tương thích

TheTạo kèo bóng đá phápLệnh phù hợp với TheSQLTiêu chuẩn, ngoại trừ điều đó SQL không đưa ra các điều khoản cho các kèo bóng đá pháp tương thích nhị phân hoặc thêm Đối số cho các chức năng thực hiện.như Ẩn ýlà APostgreSQLPhần mở rộng, quá.