Tạo kèo bóng đá c1 - Xác định một diễn viên mới
Tạo kèo bóng đá c1 (Source_Type
ASTarget_Type
) Với chức năngfunction_name
[(argars_type
[, ...])]]] [Như nhiệm vụ | Như tiềm ẩn] Tạo kèo bóng đá c1 (Source_Type
AStarget_type
) Không có chức năng [Như nhiệm vụ | Như tiềm ẩn] Tạo kèo bóng đá c1 (Source_Type
AStarget_type
) Với inout [Như nhiệm vụ | Như ẩn]
Tạo kèo bóng đá c1
Xác định kèo bóng đá c1 diễn viên mới. kèo bóng đá c1 diễn viên chỉ định cách thực hiện chuyển đổi giữa hai loại dữ liệu. Ví dụ,
Chọn kèo bóng đá c1 (42 là float8);
Chuyển đổi hằng số nguyên 42 thành loạifloat8
bằng cách gọi kèo bóng đá c1 chức năng được chỉ định trước đó, trong trường hợp nàyfloat8 (int4)
. (Nếu không có kèo bóng đá c1 phù hợp nào được xác định, chuyển đổi sẽ không thành công.)
Hai loại có thể11385_11403, có nghĩa là có thể thực hiện chuyển đổiHồimiễn phíHồimà không cần gọi bất kỳ chức năng nào. Điều này yêu cầu các giá trị tương ứng sử dụng cùng kèo bóng đá c1 biểu diễn nội bộ. Chẳng hạn, các loạiText
vàVarchar
Có thể ép buộc nhị phân cả hai cách. Sự ép buộc nhị phân không nhất thiết là kèo bóng đá c1 mối quan hệ đối xứng. Ví dụ: diễn viên từXML
đếnText
có thể được thực hiện miễn phí trong quá trình triển khai hiện tại, nhưng hướng ngược lại yêu cầu kèo bóng đá c1 hàm thực hiện ít nhất là kiểm tra cú pháp. (Hai loại có thể ép buộc nhị phân cả hai cách cũng được gọi là tương thích nhị phân.)
Bạn có thể định nghĩa kèo bóng đá c1 diễn viên là12206_12227bằng cách sử dụngvới inout
Cú pháp. kèo bóng đá c1 diễn viên chuyển đổi I/O được thực hiện bằng cách gọi chức năng đầu ra của kiểu dữ liệu nguồn và chuyển chuỗi kết quả đến chức năng đầu vào của kiểu dữ liệu đích. Trong nhiều trường hợp phổ biến, tính năng này tránh được sự cần thiết phải viết kèo bóng đá c1 chức năng đúc riêng để chuyển đổi. kèo bóng đá c1 diễn viên chuyển đổi I/O hoạt động giống như kèo bóng đá c1 diễn viên dựa trên chức năng thông thường; Chỉ triển khai là khác nhau.
Theo mặc định, kèo bóng đá c1 diễn viên chỉ có thể được gọi bằng kèo bóng đá c1 yêu cầu diễn viên rõ ràng, đó là kèo bóng đá c1 điều rõ ràngkèo bóng đá c1 (
hoặcx
AStypename
)x
::
typename
Xây dựng.
Nếu kèo bóng đá c1 được đánh dấulàm bài tập
Sau đó, nó có thể được gọi ngầm khi gán kèo bóng đá c1 giá trị cho kèo bóng đá c1 cột của kiểu dữ liệu đích. Ví dụ: giả sử rằngfoo.f1
là kèo bóng đá c1 cột loạiText
, sau đó:
Chèn vào các giá trị foo (f1) (42);
sẽ được phép nếu kèo bóng đá c1 từ loạiSố nguyên
để loạiText
được đánh dấulàm bài tập
, nếu không thì không. (Chúng ta thường sử dụng thuật ngữkèo bóng đá c1 gánĐể mô tả loại kèo bóng đá c1 này.)
Nếu kèo bóng đá c1 được đánh dấunhư ẩn ửng
Sau đó, nó có thể được gọi ngầm trong bất kỳ bối cảnh nào, cho dù là gán hoặc nội bộ trong kèo bóng đá c1 biểu thức. (Chúng ta thường sử dụng thuật ngữkèo bóng đá c1 ngầmĐể mô tả loại kèo bóng đá c1 này.) Ví dụ, hãy xem xét truy vấn này:
Chọn 2 + 4.0;
Trình phân tích cú pháp ban đầu đánh dấu các hằng số là loạiSố nguyên
vàSố
tương ứng. Không cóSố nguyên
+
Số
toán tử trong danh mục hệ thống, nhưng có kèo bóng đá c1Số
+
Số
toán tử. Do đó, truy vấn sẽ thành công nếu kèo bóng đá c1 từSố nguyên
đếnSố
có sẵn và được đánh dấunhư ẩn ửng
- trên thực tế nó là. Trình phân tích cú pháp sẽ áp dụng các kèo bóng đá c1 ngầm và giải quyết truy vấn như thể nó đã được viết
Chọn kèo bóng đá c1 (2 là Số) + 4.0;
Bây giờ, các danh mục cũng cung cấp kèo bóng đá c1 diễn viên từSố
đếnSố nguyên
. Nếu kèo bóng đá c1 đó được đánh dấunhư ẩn ửng
- mà không phải - sau đó trình phân tích cú pháp sẽ phải đối mặt với việc lựa chọn giữa cách giải thích ở trên và thay thế của việc đúcSố
hằng số thànhSố nguyên
và áp dụngSố nguyên
+
Số nguyên
toán tử. Thiếu bất kỳ kiến thức nào về sự lựa chọn nào để thích, nó sẽ từ bỏ và tuyên bố câu hỏi mơ hồ. Thực tế là chỉ kèo bóng đá c1 trong hai diễn viên là ngầm là cách chúng tôi dạy cho trình phân tích cú pháp thích giải quyết của kèo bóng đá c1 hỗn hợpSố
-and-Số nguyên
15692_15709Số
; Không có kiến thức tích hợp về điều đó.
Thật khôn ngoan khi bảo thủ về việc đánh dấu các diễn viên là ngầm. kèo bóng đá c1 sự dư thừa của các đường dẫn đúc ngầm có thể gây raPostgreSQLĐể chọn các diễn giải đáng ngạc nhiên về các lệnh hoặc không thể giải quyết các lệnh vì có nhiều cách giải thích có thể. kèo bóng đá c1 quy tắc tốt là thực hiện kèo bóng đá c1 dàn diễn viên hoàn toàn có thể mời được cho các phép biến đổi bảo tồn thông tin giữa các loại trong cùng kèo bóng đá c1 loại loại chung. Ví dụ: diễn viên từINT2
đếnINT4
có thể ẩn ý kèo bóng đá c1 cách hợp lý, nhưng diễn viên từfloat8
đếnINT4
Có lẽ chỉ nên được gán. Các kèo bóng đá c1 phân loại loại chéo, chẳng hạn nhưText
đếnINT4
, được thực hiện tốt nhất chỉ rõ ràng.
Đôi khi cần thiết cho khả năng sử dụng hoặc lý do tuân thủ tiêu chuẩn để cung cấp nhiều diễn viên ngầm giữa kèo bóng đá c1 tập hợp các loại, dẫn đến sự mơ hồ không thể tránh được như trên. Người phân tích cú pháp có kèo bóng đá c1 heuristic dự phòng dựa trên16952_16969vàCác loại ưu tiênĐiều đó có thể giúp cung cấp hành vi mong muốn trong những trường hợp như vậy. Nhìn thấyTạo loạiĐể biết thêm thông tin.
17239_17327sử dụng
17359_17558
Source_Type
Tên của kiểu dữ liệu nguồn của dàn kèo bóng đá c1.
target_type
Tên của kiểu dữ liệu đích của dàn kèo bóng đá c1.
function_name
[(argion_type
[, ...])]
18296_18640
không có chức năng
18772_18892
với inout
chỉ ra rằng đúc là kèo bóng đá c1 chuyển đổi I/O, được thực hiện bằng cách gọi hàm đầu ra của kiểu dữ liệu nguồn và chuyển chuỗi kết quả đến hàm đầu vào của kiểu dữ liệu đích.
làm bài tập
Cho biết rằng các diễn viên có thể được gọi kèo bóng đá c1 cách ngầm trong bối cảnh gán.
như ẩn ửng
Cho biết rằng các kèo bóng đá c1 có thể được gọi ngầm trong bất kỳ ngữ cảnh nào.
19662_19867Số nguyên
; nó nhận được trình sửa đổi loại được liên kết với loại đích hoặc-1
Nếu không có. Đối số thứ ba, nếu có, phải là loạiBoolean
; nó nhận đượcĐúng
Nếu kèo bóng đá c1 là dàn kèo bóng đá c1 rõ ràng,Sai
Nếu không. .
20494_20598
Thông thường, một diễn viên phải có các loại dữ liệu nguồn và nguồn khác nhau. 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 giống hệt nhau nếu nó có chức năng triển khai kèo bóng đá c1 với nhiều đối số. Điều này được sử dụng để thể hiện các hàm é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 thành giá trị sửa đổi loại được đưa ra bởi đối số thứ hai của nó.
Khi kèo bóng đá c1 đúc có các loại nguồn và mục tiêu khác nhau và kèo bóng đá c1 hàm có nhiều hơn kèo bóng đá c1 đối số, nó hỗ trợ chuyển đổi từ loại này sang loại khác và áp dụng sự ép buộc dài trong kèo bóng đá c1 bước. Khi không có mục nhập nào như vậy, sự ép buộc cho kèo bóng đá c1 loại sử dụng công cụ sửa đổi loại liên quan đến hai bước đúc, kèo bóng đá c1 bước để chuyển đổi giữa các loại dữ liệu và thứ hai để áp dụng công cụ sửa đổi.
kèo bóng đá c1 diễn viên đến hoặc từ kèo bóng đá c1 loại miền hiện không có hiệu lực. Đúc vào hoặc từ kèo bóng đá c1 miền sử dụng các phôi được liên kết với loại cơ bản của nó.
Sử dụngDrop kèo bóng đá c1Để loại bỏ các kèo bóng đá c1 do người dùng xác định.
21802_21915
Thông thường không cần thiết phải tạo phôi giữa các loại do người dùng xác định và các loại chuỗi tiêu chuẩn (Text
, Varchar
vàchar (
, cũng như các loại do người dùng xác định được xác định là trong danh mục chuỗi).PostgreSQLCung cấp các diễn viên chuyển đổi I/O tự động cho điều đó. Các phôi tự động cho các loại chuỗi được coi là phôi gán, trong khi các phôi tự động từ các loại chuỗi chỉ rõ ràng. Bạn có thể ghi đè hành vi này bằng cách tuyên bố dàn diễn viên của riêng mình để thay thế kèo bóng đá c1 diễn viên tự động, nhưng thường thì lý do duy nhất để làm như vậy là nếu bạn muốn chuyển đổi dễ dàng được gọi hơn so với cài đặt chỉ có tiêu chuẩn hoặc chỉ rõ ràng. kèo bóng đá c1 lý do có thể khác là bạn muốn chuyển đổi hoạt động khác với chức năng I/O của loại; Nhưng điều đó đủ đáng ngạc nhiên khi bạn nên suy nghĩ hai lần về việc liệu đó có phải là kèo bóng đá c1 ý tưởng hay. (kèo bóng đá c1 số lượng nhỏ các loại tích hợp thực sự có các hành vi khác nhau để chuyển đổi, chủ yếu là do các yêu cầu của tiêu chuẩn SQL.)n
)
Mặc dù không bắt buộc, bạn nên tiếp tục tuân theo quy ước cũ về các chức năng thực hiện kèo bóng đá c1 kèo bóng đá c1 sau kiểu dữ liệu đích. Nhiều người dùng đã quen với việc có thể sử dụng các loại dữ liệu bằng cách sử dụng ký hiệu kiểu chức năng, đó làtypename
(x
). Ký hiệu này trên thực tế không có gì khác hơn kèo bóng đá c1 cuộc gọi của chức năng triển khai diễn viên; Nó không được coi là đặc biệt như kèo bóng đá c1 diễn viên. Nếu các chức năng chuyển đổi của bạn không được đặt tên để hỗ trợ quy ước này thì bạn sẽ có người dùng ngạc nhiên. TừPOSTGRESQLCho phép quá tải cùng kèo bóng đá c1 tên hàm với các loại đối số khác nhau, không có khó khăn gì trong việc có nhiều chức năng chuyển đổi từ các loại khác nhau mà tất cả đều sử dụng tên của loại đích.
Trên thực tế, đoạn trước là kèo bóng đá c1 sự đơn giản hóa quá mức: Có hai trường hợp trong đó kèo bóng đá c1 cấu trúc gọi chức năng sẽ được coi là kèo bóng đá c1 yêu cầu đúc mà không phù hợp với chức năng thực tế. Nếu kèo bóng đá c1 chức năng gọitên
(24346_24349
) không chính xác phù hợp với bất kỳ chức năng hiện có nào, nhưngtên
24457_24491pg_cast
Cung cấp kèo bóng đá c1 diễn viên có thể sử dụng được cho loại này từ loạix
, thì cuộc gọi sẽ được hiểu là kèo bóng đá c1 diễn viên có thể sử dụng được. Ngoại lệ này được thực hiện để các phôi có thể kết hợp nhị phân có thể được gọi bằng cách sử dụng cú pháp chức năng, mặc dù chúng thiếu bất kỳ chức năng nào. Tương tự như vậy, nếu không cópg_cast
Mục nhập nhưng diễn viên sẽ đến hoặc từ kèo bóng đá c1 loại chuỗi, cuộc gọi sẽ được hiểu là diễn viên chuyển đổi I/O. Ngoại lệ này cho phép các diễn viên chuyển đổi I/O được gọi bằng cú pháp chức năng.
25163_25363kèo bóng đá c1
hoặc::
ký hiệu). Ngoại lệ này đã được thêm vào bởi vì sau khi giới thiệu các phôi chuyển đổi I/O được cung cấp tự động, nó đã được tìm thấy quá dễ dàng để vô tình gọi kèo bóng đá c1 diễn viên như vậy khi kèo bóng đá c1 chức năng hoặc tham chiếu cột được dự định.
Để tạo kèo bóng đá c1 bài tập được chọn từ loạiBigint
để loạiINT4
Sử dụng chức năngINT4 (BIGINT)
:
25968_26042
(kèo bóng đá c1 này đã được xác định trước trong hệ thống.)
TheTạo kèo bóng đá c1
lệnh phù hợp vớiSQL26309_26438như ẩn ửng
là APostgreSQLPhần mở rộng, quá.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.