Postgresql 8.2.23 Tài liệu | ||||
---|---|---|---|---|
10222_10228 | Backward nhanh | Chuyển tiếp nhanh | Tiếp theo |
Tạo [hoặc thay thế] chức tỷ lệ kèo bóng đátên([[argmode] [argname]argtype[, ...]])) [ReturnRettype] NGÔN NGỮLangname| Bất biến | Ổn định | BAY HƠI | Được gọi trên NULL đầu vào | Trả về NULL trên đầu vào null | NGHIÊM NGẶT | [Bên ngoài] Invoker bảo mật | [Bên ngoài] Bảo mật Definer | BẰNG 'Định nghĩa' | BẰNG 'obj_file','link_symbol' ... [ VỚI (thuộc tính[, ...])]]
Tạo chức tỷ lệ kèo bóng đáXác định mới chức tỷ lệ kèo bóng đá.Tạo hoặc thay thế chức tỷ lệ kèo bóng đásẽ tạo chức tỷ lệ kèo bóng đá mới hoặc thay thế một sự định nghĩa.
Nếu bao gồm tên lược đồ, thì hàm được tạo trong lược đồ quy định. Nếu không nó được tạo trong hiện tại lược đồ. Tên của chức tỷ lệ kèo bóng đá mới không được khớp với bất kỳ chức tỷ lệ kèo bóng đá với cùng loại đối số trong cùng một lược đồ. Tuy nhiên, các chức tỷ lệ kèo bóng đá của các loại đối số khác nhau có thể chia sẻ tên (cái này được gọi làquá tải).
Để cập nhật định nghĩa về chức tỷ lệ kèo bóng đá hiện có, sử dụngTạo hoặc thay thế chức tỷ lệ kèo bóng đá12647_12815tỷ lệ kèo bóng đá hoặc thay thế CHỨC NĂNGsẽ không cho phép bạn thay đổi loại trả về của một chức tỷ lệ kèo bóng đá hiện có. Để làm điều đó, bạn phải bỏ và tái tạo chức tỷ lệ kèo bóng đá. (Khi sử dụngouttham số, Điều đó có nghĩa là bạn không thể thay đổi tên hoặc loại của bất kỳouttham số ngoại trừ bằng cách bỏ chức tỷ lệ kèo bóng đá.)
Nếu bạn bỏ và sau đó tạo lại một hàm, chức tỷ lệ kèo bóng đá mới là không giống nhau như cũ; Bạn sẽ phải bỏ hiện tại Các quy tắc, quan điểm, kích hoạt, vv đề cập đến hàm cũ. Sử dụngTạo hoặc thay thế chức tỷ lệ kèo bóng đáĐể thay đổi a định nghĩa chức tỷ lệ kèo bóng đá mà không phá vỡ các đối tượng đề cập đến chức tỷ lệ kèo bóng đá.
Người dùng tạo chức tỷ lệ kèo bóng đá trở thành chủ sở hữu của chức tỷ lệ kèo bóng đá.
Tên (Tùy chọn Lược đồ theo trình độ) của chức tỷ lệ kèo bóng đá để tạo.
13987_14021in, outhoặcInout. Nếu bị bỏ qua, mặc định làin.
Tên của một đối số. Một số ngôn ngữ (hiện chỉ PL/PGSQL) Cho phép bạn sử dụng tên trong cơ thể chức tỷ lệ kèo bóng đá. Vì Các ngôn ngữ khác Tên của một đối số đầu vào chỉ là thêm tài liệu. Nhưng tên của một đối số đầu ra là có ý nghĩa, vì nó xác định tên cột trong kết quả loại hàng. (Nếu bạn bỏ qua tên cho một đối số đầu ra, Hệ thống sẽ chọn tên cột mặc định.)
(tỷ lệ kèo bóng đá) loại dữ liệu của tỷ lệ kèo bóng đá đối số của hàm (tùy chọn Lược đồ-đủ điều kiện), nếu có. tỷ lệ kèo bóng đá loại đối số có thể là cơ sở, tổng hợp hoặc tỷ lệ kèo bóng đá loại miền hoặc có thể tham chiếu loại của một cột bảng.
Tùy thuộc vào ngôn ngữ triển khai, nó cũng có thể được phép chỉ định"Pseudotypes"chẳng hạn nhưcstring. Pseudotypes chỉ ra rằng loại đối số thực tế là không hoàn chỉnh được chỉ định hoặc bên ngoài tập hợp dữ liệu SQL thông thường tỷ lệ kèo bóng đá loại.
Loại cột được tham chiếu bằng cách viếtTableName.CộtName%loại. Sử dụng điều này tính tỷ lệ kèo bóng đá đôi khi có thể giúp tạo ra một chức tỷ lệ kèo bóng đá độc lập với thay đổi định nghĩa của bảng.
Loại dữ liệu trả về (tùy chọn đủ điều kiện lược đồ). tỷ lệ kèo bóng đá Loại trả lại có thể là loại cơ sở, tổng hợp hoặc tên miền hoặc có thể tham chiếu loại của một cột bảng. Tùy thuộc vào Ngôn ngữ triển khai Nó cũng có thể được phép chỉ định"Pseudotypes"chẳng hạn nhưcString. Nếu chức tỷ lệ kèo bóng đá không được phép Trả về một giá trị, chỉ địnhvoidnhư Loại trả về.
Khi cóouthoặcInouttham số,returnmệnh đề có thể bị bỏ qua. Nếu có mặt, nó phải đồng ý với loại kết quả được ngụ ý bởi đầu ra tham số:RecordNếu có nhiều tham số đầu ra hoặc cùng loại với đơn tham số đầu ra.
ThesetofCông cụ sửa đổi cho biết rằng chức tỷ lệ kèo bóng đá sẽ trả về một tập hợp các mục, thay vì mục đơn.
Loại cột được tham chiếu bằng cách viếtTableName.CộtName17043_17050.
Tên của ngôn ngữ mà hàm là được triển khai. Có thể làSQL, C, Nội bộhoặc tên của người dùng do người dùng xác định Ngôn ngữ thủ tục. Để tương thích ngược, tên có thể được đặt trong tỷ lệ kèo bóng đá trích dẫn đơn.
Những thuộc tính này thông báo cho Trình tối ưu hóa truy vấn về hành vi của chức tỷ lệ kèo bóng đá. Nhiều nhất một lựa chọn có thể là chỉ định. Nếu không ai trong số này xuất hiện,Disrilelà giả định mặc định.
bất biến17934_18363
ổn địnhchỉ ra rằng
chức tỷ lệ kèo bóng đá không thể sửa đổi cơ sở dữ liệu và trong một
Quét bảng đơn, nó sẽ liên tục trả về giống nhau
kết quả cho cùng một giá trị đối số, nhưng kết quả của nó
có thể thay đổi trên các câu lệnh SQL. Đây là thích hợp
Lựa chọn cho các chức tỷ lệ kèo bóng đá có kết quả phụ thuộc vào cơ sở dữ liệu
Tra cứu, các biến tham số (chẳng hạn như thời gian hiện tại
vùng), v.v. cũng lưu ý rằngcurrent_timestamp
Gia đình chức tỷ lệ kèo bóng đá
đủ điều kiện là ổn định, vì giá trị của chúng không thay đổi bên trong
một giao dịch.
Disrily19071_19297ngẫu nhiên (), currval (), Timeofday (). Nhưng lưu ý rằng bất kỳ chức tỷ lệ kèo bóng đá nào có tác dụng phụ phải được phân loại biến động, ngay cả khi nó Kết quả là khá dễ đoán, để ngăn chặn các cuộc gọi không tối ưu hóa đi; Một ví dụ làsetVal ().
Để biết thêm chi tiết, xemPhần 33.6.
được gọi là đầu vào null(The mặc định) chỉ ra rằng hàm sẽ được gọi Thông thường khi một số lập luận của nó là vô giá trị. Đó là lúc đó chức tỷ lệ kèo bóng đá của tác giả có trách nhiệm kiểm tra NULL các giá trị nếu cần thiết và trả lời một cách thích hợp.
Trả về NULL trên đầu vào nullhoặcnghiêm ngặtcho biết chức tỷ lệ kèo bóng đá Luôn trả lại NULL bất cứ khi nào bất kỳ đối số nào của nó là NULL. Nếu tham số này được chỉ định, hàm không được thực hiện khi có các đối số null; thay vào đó là một null Kết quả được giả định tự động.
Bảo mật Invokerchỉ ra rằng chức tỷ lệ kèo bóng đá sẽ được thực thi với các đặc quyền của người dùng gọi nó. Đó là mặc định.bảo mật xác địnhChỉ định rằng chức tỷ lệ kèo bóng đá sẽ được thực thi với các đặc quyền của người dùng đã tạo nó.
Từ khóabên ngoàiIS được phép cho sự phù hợp SQL, nhưng nó là tùy chọn kể từ đó, Không giống như trong SQL, tính tỷ lệ kèo bóng đá này áp dụng cho tất cả các chức tỷ lệ kèo bóng đá không Chỉ những cái bên ngoài.
21543_21761
Hình thức này củaASmệnh đề là được sử dụng cho các hàm ngôn ngữ C có thể tải động khi Tên chức tỷ lệ kèo bóng đá trong mã nguồn ngôn ngữ C không giống nhau là tên của hàm SQL. Chuỗiobj_filelà tên của tệp chứa đối tượng có thể tải động vàlink_symbol22365_22602
Cách lịch sử để chỉ định các phần tùy chọn của thông tin về chức tỷ lệ kèo bóng đá. Các thuộc tính sau đây Có thể xuất hiện ở đây:
tương đương vớinghiêm ngặthoặcTrả về NULL trên NULL Đầu vào.
isCachablelà một lỗi thời Tương đương vớiImmutable; nó vẫn được chấp nhận để tương thích ngược lý do.
Tên thuộc tính không nhạy cảm với trường hợp.
Tham khảoPhần 33.3Để biết thêm thông tin về chức tỷ lệ kèo bóng đá viết.
toàn bộSQLLoại cú pháp là được phép cho tỷ lệ kèo bóng đá đối số đầu vào và giá trị trả về. Tuy nhiên, một số Chi tiết về đặc tả loại (ví dụ: trường chính xác cho kiểuSố) là trách nhiệm của thực hiện chức tỷ lệ kèo bóng đá cơ bản và bị nuốt một cách âm thầm (tức là, không được công nhận hoặc thi hành) bởiTạo chức tỷ lệ kèo bóng đálệnh.
PostgreSQLcho phép chức tỷ lệ kèo bóng đáquá tải; nghĩa là, cùng một tên có thể được sử dụng cho một số chức tỷ lệ kèo bóng đá khác nhau miễn là chúng có Các loại đối số khác biệt. Tuy nhiên, tên C của tất cả các chức tỷ lệ kèo bóng đá Phải khác nhau, vì vậy bạn phải cung cấp các chức tỷ lệ kèo bóng đá C quá tải Các tên C khác nhau (ví dụ: sử dụng các loại đối số như một phần của tên c).
Hai chức tỷ lệ kèo bóng đá được coi là giống nhau nếu chúng có giống nhau Tên vàInputtỷ lệ kèo bóng đá loại đối số, bỏ qua bất kỳouttham số. Do đó, ví dụ như những tuyên bố xung đột:
Tạo chức tỷ lệ kèo bóng đá foo (int) ... Tạo chức tỷ lệ kèo bóng đá foo (int, out text) ...
Khi lặp lạiTạo chức tỷ lệ kèo bóng đácuộc gọi Tham khảo cùng một tệp đối tượng, tệp chỉ được tải một lần mỗi phiên họp. Để dỡ và tải lại tệp (có lẽ trong thời gian phát triển), bắt đầu một phiên mới.
sử dụngthả CHỨC NĂNGĐể xóa các chức tỷ lệ kèo bóng đá do người dùng xác định.
Thường rất hữu ích khi sử dụng trích dẫn đô la (xemPhần 4.1.2.2) để viết chuỗi định nghĩa chức tỷ lệ kèo bóng đá, thay vì Cú pháp trích dẫn đơn bình thường. Không có báo giá đô la, bất kỳ Trích dẫn đơn hoặc dấu gạch chéo ngược trong định nghĩa hàm phải được thoát ra bằng cách nhân đôi chúng.
Để có thể xác định chức tỷ lệ kèo bóng đá, người dùng phải cósử dụngĐặc quyền trên ngôn ngữ.
KhiTạo hoặc thay thế chức tỷ lệ kèo bóng đáIS được sử dụng để thay thế một chức tỷ lệ kèo bóng đá hiện có, quyền sở hữu và Quyền của chức tỷ lệ kèo bóng đá không thay đổi. Tất cả các chức tỷ lệ kèo bóng đá khác các thuộc tính được gán các giá trị được chỉ định hoặc ngụ ý trong yêu cầu. Bạn phải sở hữu chức tỷ lệ kèo bóng đá để thay thế nó (bao gồm là thành viên của vai trò sở hữu).
Dưới đây là một số ví dụ tầm thường để giúp bạn bắt đầu. Vì Thêm thông tin và ví dụ, xemPostgreSQL:.
Tạo chức tỷ lệ kèo bóng đá Thêm (Số nguyên, Số nguyên) Trả về Integer Như 'Chọn $ 1 + $ 2;' Ngôn ngữ SQL Bất biến Trả về null trên đầu vào null;
Tăng số nguyên, sử dụng tên đối số, trongPL/PGSQL:
Tạo hoặc thay thế chức tỷ lệ kèo bóng đá tăng (I Integer) Trả về số nguyên dưới dạng $$ BẮT ĐẦU Trả về i + 1; KẾT THÚC; $$ ngôn ngữ plpgsql;
Trả về bản ghi chứa nhiều tham số đầu ra:
Tạo chức tỷ lệ kèo bóng đá DUP (trong int, out f1 int, out f2 văn bản) Như $$ Chọn $ 1, diễn viên ($ 1 dưới dạng văn bản) || 'là văn bản' $$ Ngôn ngữ SQL; Chọn * từ DUP (42);
Bạn có thể làm điều tương tự hơn một cách rõ ràng hơn với một điều rõ ràng loại tổng hợp được đặt tên:
Tạo loại DUP_RESULT là (F1 int, F2 văn bản); Tạo chức tỷ lệ kèo bóng đá DUP (int) Trả về DUP_RESULT Như $$ Chọn $ 1, diễn viên ($ 1 dưới dạng văn bản) || 'là văn bản' $$ Ngôn ngữ SQL; Chọn * từ DUP (42);
vì abảo mật xác địnhHàm được thực thi với các đặc quyền của người dùng đã tạo nó, quan tâm là cần thiết để đảm bảo rằng chức tỷ lệ kèo bóng đá không thể bị lạm dụng. Vì bảo vệ,search_pathnên được đặt để loại trừ bất kỳ lược đồ nào có thể ghi bởi người dùng không tin cậy. Điều này ngăn người dùng độc hại tạo ra các đối tượng che giấu các đối tượng được sử dụng bởi chức tỷ lệ kèo bóng đá. Đặc biệt quan trọng trong việc này quan tâm là lược đồ bàn tạm thời, được tìm kiếm đầu tiên bởi Mặc định, và thường có thể ghi bởi bất kỳ ai. Một sự sắp xếp an toàn có thể có bằng cách buộc lược đồ tạm thời được tìm kiếm cuối cùng. Để làm điều này, viếtPG_TEMPNhư lần cuối cùng mục trongsearch_path. Hàm này Minh họa cách sử dụng an toàn:
28564_29487
ATạo chức tỷ lệ kèo bóng đáLệnh được xác định trong SQL: 1999 và sau đó. ThePostgreSQLPhiên bản tương tự nhưng không hoàn toàn tương thích. tỷ lệ kèo bóng đá thuộc tính không thể di động, cũng không phải là tỷ lệ kèo bóng đá ngôn ngữ có sẵn khác nhau.
Để tương thích với một số hệ thống cơ sở dữ liệu khác,argmodecó thể được viết trước hoặc sau đóargname. Nhưng chỉ đầu tiên cách tuân thủ tiêu chuẩn.
30847_30853 | Trang chủ | NEXT |
tỷ lệ kèo bóng đá tên miền | UP | tỷ lệ kèo bóng đá nhóm |