Tạo tỷ lệ kèo bóng đá tối nay (Source_TypeAStarget_type) Với chức năngfunction_name(10513_10528[, ...]) [Như nhiệm vụ | Như tiềm ẩn] Tạo tỷ lệ kèo bóng đá tối nay (Source_TypeASTarget_Type) Không có chức năng [Như nhiệm vụ | Như tiềm ẩn] Tạo tỷ lệ kèo bóng đá tối nay (Source_TypeAStarget_type) Với inout [Như nhiệm vụ | Như ẩn]
Tạo tỷ lệ kèo bóng đá tối nayXác định một tỷ lệ kèo bóng đá tối nay mới. Một tỷ lệ kèo bóng đá tối nay chỉ định cách thực hiện chuyển đổi giữa hai loại dữ liệu. Ví dụ,
Chọn tỷ lệ kèo bóng đá tối nay (42 là float8);
Chuyển đổi hằng số nguyên 42 thành loạifloat8bằng cách gọi một chức năng được chỉ định trước đó, trong trường hợp nàyfloat8 (int4). (Nếu không có tỷ lệ kèo bóng đá tối nay phù hợp nào được xác định, chuyển đổi sẽ không thành công.)
Hai loại có thểcủng cố nhị phân, có nghĩa là có thể thực hiện chuyển đổi"miễn phí"mà 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 một biểu tỷ lệ kèo bóng đá tối nay nội bộ. Chẳng hạn, các loạiTextvà11800_11809Có 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à một mối quan hệ đối xứng. Ví dụ: tỷ lệ kèo bóng đá tối nay từXMLđếnTextcó thể được thực hiện miễn phí trong quá trình thực hiện hiện tại, nhưng hướng ngược lại yêu cầu một 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 một tỷ lệ kèo bóng đá tối nay làI/O chuyển đổi tỷ lệ kèo bóng đá tối naybằng cách sử dụngvới inoutCú pháp. Một tỷ lệ kèo bóng đá tối nay 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 một chức năng đúc riêng để chuyển đổi. Một tỷ lệ kèo bóng đá tối nay chuyển đổi I/O hoạt động giống như một tỷ lệ kèo bóng đá tối nay dựa trên chức năng thông thường; Chỉ triển khai là khác nhau.
Theo mặc định, một tỷ lệ kèo bóng đá tối nay chỉ có thể được gọi bằng một yêu cầu tỷ lệ kèo bóng đá tối nay rõ ràng, đó là một điều rõ ràngtỷ lệ kèo bóng đá tối nay (xASTypename12943_12946hoặcx::TypenameXây dựng.
Nếu tỷ lệ kèo bóng đá tối nay được đánh dấulàm bài tậpSau đó, nó có thể được gọi ngầm khi gán một giá trị cho một cột của kiểu dữ liệu đích. Ví dụ: giả sử rằngfoo.f1là một cột loạiText, sau đó:
Chèn vào các giá trị foo (f1) (42);
sẽ được phép nếu tỷ lệ kèo bóng đá tối nay 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ữtỷ lệ kèo bóng đá tối nay gánĐể mô tả loại tỷ lệ kèo bóng đá tối nay này.)
Nếu tỷ lệ kèo bóng đá tối nay được đánh dấunhư ẩn ửng13749_13880tỷ lệ kèo bóng đá tối nay ngầmĐể mô tả loại tỷ lệ kèo bóng đá tối nay 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ênvàSốtương ứng. Không cóSố nguyên + Sốtoán tử trong danh mục hệ thống, nhưng có mộtSố + Sốtoán tử. Do đó, truy vấn sẽ thành công nếu tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay ngầm và giải quyết truy vấn như thể nó đã được viết
Chọn tỷ lệ kèo bóng đá tối nay (2 là Số) + 4.0;
Bây giờ, các danh mục cũng cung cấp một tỷ lệ kèo bóng đá tối nay từSốđếnSố nguyên. Nếu tỷ lệ kèo bóng đá tối nay đó được đánh dấunhư ẩn ửng14951_15087SốHằng số thànhSố nguyênvà áp dụngSố nguyên + Số nguyêntoá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ỉ một trong hai tỷ lệ kèo bóng đá tối nay 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 một hỗn hợpSố-and-Số nguyênBiểu thức làSố; 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 tỷ lệ kèo bóng đá tối nay là ngầm. Một 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ể. Một quy tắc tốt là thực hiện một dàn tỷ lệ kèo bóng đá tối nay 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 một loại loại chung. Ví dụ: tỷ lệ kèo bóng đá tối nay từINT2đếnINT4Có thể ẩn ý một cách hợp lý, nhưng tỷ lệ kèo bóng đá tối nay từfloat8đếnINT4Có lẽ chỉ nên được chuyển nhượng. Các tỷ lệ kèo bóng đá tối nay phân loại loại chéo, chẳng hạn nhưTextđếnINT416432_16464
Lưu ý:Đô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 tỷ lệ kèo bóng đá tối nay ngầm trong một 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ó một heuristic dự phòng dựa trênLoại danh mụcvà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.
Để có thể tạo tỷ lệ kèo bóng đá tối nay, bạn phải sở hữu nguồn hoặc kiểu dữ liệu đích và cósử dụngĐặc quyền ở loại khác. Để tạo ra một tỷ lệ kèo bóng đá tối nay nhị phân, bạn phải là siêu nhân. (Hạn chế này được thực hiện vì một chuyển đổi đúc nhị phân sai lầm có thể dễ dàng làm hỏng máy chủ.)
Tên của kiểu dữ liệu nguồn của dàn tỷ lệ kèo bóng đá tối nay.
Tên của kiểu dữ liệu đích của dàn tỷ lệ kèo bóng đá tối nay.
Hàm được sử dụng để thực hiện tỷ lệ kèo bóng đá tối nay. Tên chức năng có thể được định mức lược đồ. Nếu không, chức năng sẽ được tra cứu trong đường dẫn tìm kiếm lược đồ. Kiểu dữ liệu kết quả của chức năng phải khớp với loại mục tiêu của dàn tỷ lệ kèo bóng đá tối nay. Các đối số của nó được thảo luận dưới đây.
18120_18240
18302_18501
Cho biết rằng các tỷ lệ kèo bóng đá tối nay có thể được gọi hoàn toàn trong bối cảnh gán.
Cho biết rằng các tỷ lệ kèo bóng đá tối nay có thể được gọi ngầm trong bất kỳ ngữ cảnh nào.
Các chức năng triển khai tỷ lệ kèo bóng đá tối nay có thể có một đến ba đối số. Loại đối số đầu tiên phải giống hệt với hoặc có thể sử dụng nhị phân từ loại nguồn của tỷ lệ kèo bóng đá tối nay. Đối số thứ hai, nếu có, phải là loạiSố 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-1Nếu không có. Đối số thứ ba, nếu có, phải là loạiBoolean; nó nhận đượctrueNếu tỷ lệ kèo bóng đá tối nay là một tỷ lệ kèo bóng đá tối nay rõ ràng,SaiNếu không. .
19604_19708
Thông thường, một diễn viên phải có các loại dữ liệu nguồn và mục tiêu 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 tỷ lệ kèo bóng đá tối nay 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 một tỷ lệ kèo bóng đá tối nay có các loại nguồn và mục tiêu khác nhau và một hàm có nhiều hơn một đối số, nó hỗ trợ chuyển đổi từ loại này sang loại khác và áp dụng một sự ép buộc dài trong một bước. Khi không có mục nhập nào như vậy, sự ép buộc cho một loại sử dụng công cụ sửa đổi loại liên quan đến hai bước đúc, một 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.
Một tỷ lệ kèo bóng đá tối nay đến hoặc từ loại miền hiện không có hiệu lực. Đúc vào hoặc từ một 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ụngPostgreSQL: Tài kèo chấp bóng đáĐể loại bỏ các tỷ lệ kèo bóng đá tối nay do người dùng xác định.
20853_20966
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, Varcharvàchar (n), 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).PostgreSQL21322_22096
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 tỷ lệ kèo bóng đá tối nay tỷ lệ kèo bóng đá tối nay 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 một cuộc gọi của chức năng triển khai tỷ lệ kèo bóng đá tối nay; Nó không được coi là đặc biệt như một tỷ lệ kèo bóng đá tối nay. 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 một 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.
Lưu ý:Trên thực tế, đoạn trước là một sự đơn giản hóa quá mức: Có hai trường hợp trong đó cấu trúc gọi chức năng sẽ được coi là yêu cầu đúc mà không khớp với chức năng thực tế. Nếu một chức năng gọitên(x) 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ênlà tên của kiểu dữ liệu vàPG_CAST23421_23487x, thì cuộc gọi sẽ được hiểu là một tỷ lệ kèo bóng đá tối nay 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_castMục nhập nhưng tỷ lệ kèo bóng đá tối nay sẽ đến hoặc từ một loại chuỗi, cuộc gọi sẽ được hiểu là tỷ lệ kèo bóng đá tối nay chuyển đổi I/O. Ngoại lệ này cho phép các tỷ lệ kèo bóng đá tối nay chuyển đổi I/O được gọi bằng cú pháp chức năng.
Lưu ý:24046_24247tỷ lệ kèo bóng đá tối nayhoặ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 một tỷ lệ kèo bóng đá tối nay như vậy khi một chức năng hoặc tham chiếu cột được dự định.
Để tạo một bài tập được đúc từ loạiBigintđể loạiINT4Sử dụng chức năngINT4 (BIGINT):
24864_24936
(tỷ lệ kèo bóng đá tối nay này đã được xác định trước trong hệ thống.)