Postgresql 8.1.23 Tài liệu | ||||
---|---|---|---|---|
Prev | Backward nhanh | Chuyển tiếp nhanh | Tiếp theo |
Tạo [hoặc thay thế] kèo bóng đá cúp c2tê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 kèo bóng đá cúp c2Xác định mới kèo bóng đá cúp c2.Tạo hoặc thay thế kèo bóng đá cúp c2sẽ tạo kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 mới không được khớp với bất kỳ kèo bóng đá cúp c2 với cùng loại đối số trong cùng một lược đồ. Tuy nhiên, các kèo bóng đá cúp c2 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ề kèo bóng đá cúp c2 hiện có, sử dụngTạo hoặc thay thế kèo bóng đá cúp c2. Nó không phải là có thể thay đổi tên hoặc loại đối số của một hàm này cách (nếu bạn đã thử, bạn thực sự sẽ tạo ra một mới, khác biệt kèo bóng đá cúp c2). Cũng,kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 hiện có. Để làm điều đó, bạn phải bỏ và tái tạo kèo bóng đá cúp c2. (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ỏ kèo bóng đá cúp c2.)
Nếu bạn bỏ và sau đó tạo lại một hàm, kèo bóng đá cúp c2 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ế kèo bóng đá cúp c2Để thay đổi a định nghĩa kèo bóng đá cúp c2 mà không phá vỡ các đối tượng đề cập đến kèo bóng đá cúp c2.
Người dùng tạo kèo bóng đá cúp c2 trở thành chủ sở hữu của kèo bóng đá cúp c2.
Tên (Tùy chọn Lược đồ theo trình độ) của kèo bóng đá cúp c2 để tạo.
Chế độ của đối số: kèo bóng đá cúp c2 trong haiin, 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ể kèo bóng đá cúp c2. 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.)
(Các) loại dữ liệu của các đối số của hàm (tùy chọn Lược đồ-đủ điều kiện), nếu có. Các loại đối số có thể là cơ sở, tổng hợp hoặc các loại miền hoặc có thể tham chiếu loại của kèo bóng đá cúp c2 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 các 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 năng đôi khi có thể giúp tạo ra một kèo bóng đá cúp c2 độ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 đồ). Các 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 kèo bóng đá cúp c2 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.
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 kèo bóng đá cúp c2 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ộtName%loại.
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 các trích dẫn đơn.
Những thuộc tính này thông báo cho hệ thống xem có an toàn để thay thế nhiều đánh giá của hàm bằng kèo bóng đá cúp c2 Đánh giá, để tối ưu hóa thời gian chạy. Nhiều nhất là kèo bóng đá cúp c2 lựa chọn có thể được chỉ định. Nếu không ai trong số này xuất hiện,Disrilylà giả định mặc định.
bất biếnchỉ ra rằng kèo bóng đá cúp c2 luôn trả về cùng một kết quả khi được đưa ra cùng một giá trị đối số; nghĩa là, nó không thực hiện tra cứu cơ sở dữ liệu hoặc sử dụng thông tin không có mặt trực tiếp trong Danh sách đối số. Nếu tùy chọn này được đưa ra, bất kỳ cuộc gọi nào của kèo bóng đá cúp c2 với các đối số liên tục có thể ngay lập tức được thay thế bằng giá trị kèo bóng đá cúp c2.
Ổn định18331_18731current_timestamp
Gia đình kèo bóng đá cúp c2
đủ đ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.
Disrilychỉ ra rằng Giá trị kèo bóng đá cúp c2 có thể thay đổi ngay cả trong một lần quét bảng, Vì vậy, không có tối ưu hóa có thể được thực hiện. Tương đối ít cơ sở dữ liệu Các kèo bóng đá cúp c2 dễ bay hơi theo nghĩa này; Một số ví dụ làngẫu nhiên (), currval (), TimeofDay (). Nhưng lưu ý rằng bất kỳ kèo bóng đá cúp c2 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 32.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 đó kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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ài21159_21320
Một hằng số chuỗi xác định hàm; ý nghĩa phụ thuộc vào ngôn ngữ. Nó có thể là một kèo bóng đá cúp c2 nội bộ Tên, đường dẫn đến tệp đối tượng, lệnh SQL hoặc văn bản bằng ngôn ngữ thủ tục.
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 kèo bóng đá cúp c2 trong mã nguồn ngôn ngữ C không giống nhau là tên của hàm SQL. Chuỗiobj_file22106_22189link_symbollà liên kết của kèo bóng đá cúp c2 Biểu tượng, nghĩa là tên của hàm trong ngôn ngữ C. Mã nguồn. Nếu ký hiệu liên kết bị bỏ qua, nó được giả định giống như tên của kèo bóng đá cúp c2 SQL được xác định.
Cách lịch sử để chỉ định các phần tùy chọn của thông tin về kèo bóng đá cúp c2. 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à kèo bóng đá cúp c2 lỗi thời Tương đương với23200_23211; 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 32.3Để biết thêm thông tin về kèo bóng đá cúp c2 viết.
toàn bộSQLLoại cú pháp là được phép cho các đối số đầu vào và giá trị trả về. Tuy nhiên, kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2lệnh.
PostgreSQLcho phép kèo bóng đá cúp c2quá tải; nghĩa là, cùng một tên có thể được sử dụng cho một số kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 Phải khác nhau, vì vậy bạn phải cung cấp các kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 được coi là giống nhau nếu chúng có giống nhau Tên vàINPUTCác loại đối số, bỏ qua bất kỳouttham số. Do đó, ví dụ như những tuyên bố xung đột:
Tạo kèo bóng đá cúp c2 foo (int) ... Tạo kèo bóng đá cúp c2 foo (int, out text) ...
Khi lặp lạiTạo kèo bóng đá cúp c2cuộc gọi Tham khảo cùng kèo bóng đá cúp c2 tệp đối tượng, tệp chỉ được tải kèo bóng đá cúp c2 lần. ĐẾN dỡ và tải lại tệp (có lẽ trong quá trình phát triển), sử dụngloadlệnh.
Sử dụngkèo bóng đá euro: TàiĐể xóa các kèo bóng đá cúp c2 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 hàm, thay vì bình thường Cú pháp trích dẫn đơn. Không có báo giá đô la, bất kỳ trích dẫn nào hoặc Backslashes trong định nghĩa kèo bóng đá cúp c2 phải được thoát khỏi nhân đôi chúng.
Để có thể xác định kèo bóng đá cúp c2, người dùng phải cósử dụngĐặc quyền trên ngôn ngữ.
KhiTạo hoặc thay thế kèo bóng đá cúp c2IS được sử dụng để thay thế một kèo bóng đá cúp c2 hiện có, quyền sở hữu và Quyền của kèo bóng đá cúp c2 không thay đổi. Tất cả các kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 để thay thế nó (bao gồm là thành viên của vai trò sở hữu).
Dưới đây là kèo bóng đá cúp c2 số ví dụ tầm thường để giúp bạn bắt đầu. Vì Thêm thông tin và ví dụ, xemPostgreSQL:.
26379_26524
Tăng số nguyên, sử dụng tên đối số, trongPL/PGSQL:
Tạo hoặc thay thế kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 cách rõ ràng hơn với kèo bóng đá cúp c2 đ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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 không thể bị lạm dụng. Vì bảo vệ,search_path27873_28292PG_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:
28458_29381