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 / 7.2
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 tỷ lệ kèo bóng đá trực tuyến hôm nay trang chohiện tạiPhiên bản hoặc một trong tỷ lệ kèo bóng đá trực tuyến hôm nay phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

40.3. Khai tỷ lệ kèo bóng đá trực tuyến hôm nay

Tất cả các biến được sử dụng trong một khối phải được khai tỷ lệ kèo bóng đá trực tuyến hôm nay trong Phần khai tỷ lệ kèo bóng đá trực tuyến hôm nay của khối. (Ngoại lệ duy nhất là Biến vòng của AchoVòng lặp lặp trong một loạt các giá trị số nguyên được tự động khai tỷ lệ kèo bóng đá trực tuyến hôm nay là Biến số nguyên và tương tự như biến vòng lặp củachoVòng lặp lặp qua kết quả của con trỏ là Tự động khai tỷ lệ kèo bóng đá trực tuyến hôm nay là biến bản ghi.)

PL/PGSQLBiến có thể có bất kỳ Kiểu dữ liệu SQL, chẳng hạn nhưSố nguyên, Varcharchar.

Đây là một số ví dụ về khai tỷ lệ kèo bóng đá trực tuyến hôm nay biến:

Số nguyên user_id;
số lượng số (5);
url varchar;
Tên tablename myrow%RowType;
myfield tablename.columnname%Loại;
Bản ghi AROW;

​​Cú pháp chung của khai tỷ lệ kèo bóng đá trực tuyến hôm nay biến là:

tên[hằng số]loại[đối chiếucollation_name ] [không null] [Mặc định | : =Biểu thức ];

TheMặc địnhmệnh đề, nếu được đưa ra, chỉ định giá trị ban đầu được gán cho biến khi khối là nhập. Nếumặc địnhmệnh đề thì không Cho sau đó biến được khởi tạo thànhSQLgiá trị null. Thehằng sốTùy chọn ngăn biến không tồn tại được gán cho sau khi khởi tạo, do đó giá trị của nó sẽ vẫn còn Không đổi trong thời gian của khối. Theđối chiếuTùy chọn chỉ định tỷ lệ kèo bóng đá trực tuyến hôm nay đối chiếu để sử dụng cho Biến (xemPhần 40.3.6). Nếu nhưkhông nullđược chỉ định, an Việc gán giá trị null dẫn đến lỗi thời gian chạy. Tất cả các biến được khai tỷ lệ kèo bóng đá trực tuyến hôm nay làkhông nullphải có a Giá trị mặc định không phải là được chỉ định.

Giá trị mặc định của tỷ lệ kèo bóng đá trực tuyến hôm nay biến được đánh giá và gán cho Biến mỗi lần nhập khối (không chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay lần trên mỗi hàm gọi). Vì vậy, ví dụ, gánbây giờ ()đến tỷ lệ kèo bóng đá trực tuyến hôm nay biến của loạiDấu thời giangây ra biến để có thời gian của cuộc gọi chức năng hiện tại, không phải thời gian khi hàm được biên dịch trước.

Ví dụ:

Số lượng số lượng mặc định 32;
url varchar: = 'http://mysite.com';
user_id integer hằng số: = 10;

40.3.1. Khai tỷ lệ kèo bóng đá trực tuyến hôm nay chức năng Tham số

tham số được truyền cho tỷ lệ kèo bóng đá trực tuyến hôm nay chức năng được đặt tên với tỷ lệ kèo bóng đá trực tuyến hôm nay định danh$ 1, $ 2, v.v. Tùy chọn, các bí danh có thể được khai tỷ lệ kèo bóng đá trực tuyến hôm nay cho$nTên tham số để tăng khả năng đọc. Bí danh hoặc số Sau đó, định danh có thể được sử dụng để tham khảo giá trị tham số.

Có hai cách để tạo ra tỷ lệ kèo bóng đá trực tuyến hôm nay bí danh. Cách ưa thích là Đặt tên cho tham số trongTạo CHỨC NĂNGLệnh, ví dụ:

13998_14120

Theo cách khác, đó là cách duy nhất có sẵn trướcPostgreSQL8.0, là để rõ ràng khai tỷ lệ kèo bóng đá trực tuyến hôm nay bí danh, sử dụng cú pháp khai tỷ lệ kèo bóng đá trực tuyến hôm nay

tênbí danh cho $n;

Ví dụ tương tự trong kiểu này trông giống như:

Tạo chức năng sales_tax (real) trả về thực là $$
TUYÊN BỐ
    Bí danh phụ với $ 1;
BẮT ĐẦU
    Trả lại phụ * 0,06;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Lưu ý:Hai ví dụ này không hoàn toàn tương đương. TRONG Trường hợp đầu tiên,Subtotalcó thể được tham chiếu làsales_tax.subtotal, nhưng trong Trường hợp thứ hai nó không thể. (Chúng tôi đã gắn tỷ lệ kèo bóng đá trực tuyến hôm nay nhãn vào bên trong khối,Subtotalcó thể đủ điều kiện với nhãn đó, thay vào đó.)

tỷ lệ kèo bóng đá trực tuyến hôm nay số ví dụ khác:

Tạo chức năng (varchar, integer) trả về số nguyên dưới dạng $$
TUYÊN BỐ
    Bí danh V_String với giá $ 1;
    Chỉ số bí danh với giá $ 2;
BẮT ĐẦU
    - tỷ lệ kèo bóng đá trực tuyến hôm nay số tính toán sử dụng V_String và Index ở đây
KẾT THÚC;
$$ Ngôn ngữ plpgsql;

Tạo chức năng Concat_selected_fields (in_t tỷ lệ kèo bóng đá trực tuyến hôm nay số tên) Trả về văn bản dưới dạng $$
BẮT ĐẦU
    Trả lại in_t.f1 || in_t.f3 || in_t.f5 || in_t.f7;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Khi APL/PGSQLHàm là Được khai tỷ lệ kèo bóng đá trực tuyến hôm nay với các tham số đầu ra, các tham số đầu ra được đưa ra$nTên và tỷ lệ kèo bóng đá trực tuyến hôm nay bí danh tùy chọn theo cách tương tự như đầu vào bình thường tham số. Một tham số đầu ra thực sự là một biến bắt đầu null; nó nên được gán cho trong quá trình thực hiện chức năng. Giá trị cuối cùng của tham số là những gì được trả về. Chẳng hạn, ví dụ về thuế bán hàng cũng có thể được thực hiện đường:

Tạo chức năng Sales_Tax (Subtotal Real, Out Tax Real) là $$
BẮT ĐẦU
    Thuế: = Subtotal * 0,06;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Lưu ý rằng chúng tôi đã bỏ quaTrả về Real- Chúng tôi có thể đã bao gồm nó, nhưng nó sẽ là dự phòng.

Tham số đầu ra hữu ích nhất khi trả về nhiều giá trị. tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ tầm thường là:

16423_16571

Như đã thảo luận trongPhần 35.4.4, Điều này tạo hiệu quả tỷ lệ kèo bóng đá trực tuyến hôm nay loại bản ghi ẩn danh cho chức năng kết quả. Nếu areturnmệnh đề được đưa ra, nó Phải nóiTrả về bản ghi.

Một cách khác để khai tỷ lệ kèo bóng đá trực tuyến hôm nayPL/PGSQLHàm là vớiBẢNG TRẢ LẠI, ví dụ:

Tạo chức năng mở rộng_sales (p_itemno int)
Bảng trả về (số lượng int, tổng số) là $$
BẮT ĐẦU
    Truy vấn trả lại Chọn S.Quantity, S.Quantity * s.price từ Sales AS S
                 Trong đó s.itemno = p_itemno;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Điều này hoàn toàn tương đương với việc khai tỷ lệ kèo bóng đá trực tuyến hôm nay một hoặc nhiềuouttham số và chỉ địnhreturn setofSOMEYPE.

Khi loại trả về của APL/PGSQLHàm được khai tỷ lệ kèo bóng đá trực tuyến hôm nay là một đa hình kiểu (AnyEuity, AnyArray, Anynonarray, AnyenumhoặcAnyrange), tỷ lệ kèo bóng đá trực tuyến hôm nay đặc biệt tham số$ 0được tạo. Kiểu dữ liệu của nó là loại lợi nhuận thực tế của hàm, như được suy ra từ thực tế tỷ lệ kèo bóng đá trực tuyến hôm nay loại đầu vào (xemPhần 35.2.5). Điều này cho phép chức năng truy cập vào lợi nhuận thực tế của nó Nhập như thể hiện trongPhần 40.3.3. $ 0được khởi tạo thành NULL và có thể được sửa đổi bởi chức năng, vì vậy nó có thể được sử dụng để giữ Trả về giá trị nếu muốn, mặc dù điều đó là không bắt buộc.$ 0cũng có thể được đưa ra tỷ lệ kèo bóng đá trực tuyến hôm nay bí danh. Ví dụ, điều này chức năng hoạt động trên bất kỳ loại dữ liệu nào có+Nhà điều hành:

18517_18734

Có thể có hiệu ứng tương tự bằng cách khai tỷ lệ kèo bóng đá trực tuyến hôm nay một hoặc nhiều đầu ra Thông số như các loại đa hình. Trong trường hợp này là đặc biệt$ 0tham số không được sử dụng; đầu ra tỷ lệ kèo bóng đá trực tuyến hôm nay thông số tự phục vụ cùng một mục đích. Ví dụ:

19012_19208

40.3.2.bí danh

newNamebí danh choOldName;

Thebí danhCú pháp tổng quát hơn được đề xuất trong phần trước: bạn có thể khai tỷ lệ kèo bóng đá trực tuyến hôm nay bí danh cho Bất kỳ biến, không chỉ các tham số chức năng. Sử dụng thực tế chính vì điều này là gán một tên khác cho các biến với Tên được xác định trước, chẳng hạn nhưmớihoặcTrong tỷ lệ kèo bóng đá trực tuyến hôm nay quy trình kích hoạt.

ví dụ:

Tuyên bố
  bí danh trước cho cũ;
  Cập nhật bí danh cho Mới;

kể từbí danhTạo hai cách khác nhau Để đặt tên cho cùng tỷ lệ kèo bóng đá trực tuyến hôm nay đối tượng, việc sử dụng không giới hạn có thể gây nhầm lẫn. Của nó Tốt nhất chỉ sử dụng nó cho mục đích ghi đè được xác định trước tên.

40.3.3. Sao chép tỷ lệ kèo bóng đá trực tuyến hôm nay loại

Biến%loại

%loạiCung cấp loại dữ liệu của A biến hoặc cột bảng. Bạn có thể sử dụng điều này để khai tỷ lệ kèo bóng đá trực tuyến hôm nay các biến Điều đó sẽ giữ các giá trị cơ sở dữ liệu. Ví dụ: giả sử bạn có một Cột có tênuser_idTrong của bạnNgười dùngBảng. Để khai tỷ lệ kèo bóng đá trực tuyến hôm nay một biến có cùng Kiểu dữ liệu làuser.user_idbạn viết:

user_id user.user_id%type;

bằng cách sử dụng%loạiBạn không cần biết loại dữ liệu của cấu trúc bạn đang tham khảo và hầu hết điều quan trọng, nếu loại dữ liệu của mục được tham chiếu sẽ thay đổi Tương lai (ví dụ: bạn thay đổi loạiuser_idtừSố nguyênđếnReal), bạn có thể không cần phải thay đổi Định nghĩa chức năng.

%loạiđặc biệt có giá trị trong tỷ lệ kèo bóng đá trực tuyến hôm nay hàm đa hình, vì tỷ lệ kèo bóng đá trực tuyến hôm nay loại dữ liệu cần thiết cho nội bộ tỷ lệ kèo bóng đá trực tuyến hôm nay biến có thể thay đổi từ cuộc gọi này sang cuộc gọi tiếp theo. Phù hợp tỷ lệ kèo bóng đá trực tuyến hôm nay biến có thể được tạo bằng cách áp dụng%loạiĐối với tỷ lệ kèo bóng đá trực tuyến hôm nay đối số hoặc trình giữ chỗ kết quả của hàm.

40.3.4. Loại hàng

tên Table_Name%RowType;tên composite_type_name;

tỷ lệ kèo bóng đá trực tuyến hôm nay biến của loại tổng hợp được gọi làhàngBiến (hoặcloại hàngBiến). tỷ lệ kèo bóng đá trực tuyến hôm nay biến như vậy có thể giữ toàn bộ hàng củaChọnhoặcchoKết quả truy vấn, Miễn là bộ cột của truy vấn đó phù hợp với loại được khai tỷ lệ kèo bóng đá trực tuyến hôm nay của biến. Các trường riêng lẻ của giá trị hàng được truy cập bằng cách sử dụng Ký hiệu chấm thông thường, ví dụRowvar.field.

Một biến hàng có thể được khai tỷ lệ kèo bóng đá trực tuyến hôm nay có cùng loại với các hàng của một bảng hoặc chế độ xem hiện có, bằng cách sử dụngTable_Name%RowTypeKý hiệu; Hoặc nó có thể được khai tỷ lệ kèo bóng đá trực tuyến hôm nay bằng cách đặt tên của một loại tổng hợp. (Vì mỗi bảng có một loại tổng hợp liên quan giống nhau Tên, nó thực sự không quan trọng trongPostgreSQLCho dù bạn viết%RowTypehoặc không. Nhưng biểu mẫu với%RowTypecó khả năng di động hơn.)

tham số cho một hàm có thể là tỷ lệ kèo bóng đá trực tuyến hôm nay loại tổng hợp (bảng hoàn chỉnh hàng). Trong trường hợp đó, định danh tương ứng$nsẽ là một hàng Biến và tỷ lệ kèo bóng đá trực tuyến hôm nay trường có thể được chọn từ nó, ví dụ$ 1.USER_ID.

Chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay cột do người dùng định nghĩa biến loại hàng, không phải tỷ lệ kèo bóng đá trực tuyến hôm nay cột hệ thống OID hoặc tỷ lệ kèo bóng đá trực tuyến hôm nay cột khác (vì Hàng có thể là từ một chế độ xem). tỷ lệ kèo bóng đá trực tuyến hôm nay trường của loại hàng kế thừa Kích thước trường của bảng hoặc độ chính xác cho tỷ lệ kèo bóng đá trực tuyến hôm nay loại dữ liệu nhưchar (n).

Đây là một ví dụ về việc sử dụng tỷ lệ kèo bóng đá trực tuyến hôm nay loại tổng hợp.Bảng1Bảng2là tỷ lệ kèo bóng đá trực tuyến hôm nay bảng hiện có có ít nhất tỷ lệ kèo bóng đá trực tuyến hôm nay trường đã đề cập:

Tạo chức năng Merge_Fields (T_Row Bảng1) Trả về văn bản dưới dạng $$
TUYÊN BỐ
    T2_ROW Bảng2%RowType;
BẮT ĐẦU
    Chọn * vào T2_row từ Bảng2 trong đó ...;
    Trả về t_row.f1 || T2_ROW.F3 || t_row.f5 || t2_row.f7;
KẾT THÚC;
$$ Ngôn ngữ plpgsql;

Chọn Merge_fields (t.*) Từ Bảng1 t trong đó ...;

40.3.5. tỷ lệ kèo bóng đá trực tuyến hôm nay loại bản ghi

tênRecord;

Biến bản ghi tương tự như tỷ lệ kèo bóng đá trực tuyến hôm nay biến loại hàng, nhưng chúng không có cấu trúc được xác định trước. Họ đảm nhận cấu trúc hàng thực tế của hàng chúng được gán trong mộtChọnhoặcchoLệnh. tỷ lệ kèo bóng đá trực tuyến hôm nay cấu trúc của biến bản ghi có thể thay đổi mỗi khi nó là được giao cho. Hậu quả của điều này là cho đến khi một biến kỷ lục đầu tiên được gán cho, nó không có cấu trúc phụ và bất kỳ nỗ lực nào Truy cập một trường trong đó sẽ vẽ lỗi thời gian chạy.

Lưu ý rằngRecordkhông phải là dữ liệu thực sự Loại, chỉ là tỷ lệ kèo bóng đá trực tuyến hôm nay người giữ chỗ. Người ta cũng nên nhận ra rằng khi APL/PGSQLHàm được khai tỷ lệ kèo bóng đá trực tuyến hôm nay cho Loại trả vềRecord, đây không hoàn toàn là cùng tỷ lệ kèo bóng đá trực tuyến hôm nay khái niệm với tỷ lệ kèo bóng đá trực tuyến hôm nay biến bản ghi, mặc dù tỷ lệ kèo bóng đá trực tuyến hôm nay chức năng như vậy có thể sử dụng tỷ lệ kèo bóng đá trực tuyến hôm nay biến hồ sơ để giữ kết quả của nó. Trong cả hai trường hợp cấu trúc hàng thực tế không rõ khi nào chức năng được viết, nhưng cho tỷ lệ kèo bóng đá trực tuyến hôm nay chức năng trả vềRecordThực tế cấu trúc được xác định khi truy vấn gọi được phân tích cú pháp, trong khi Biến ghi có thể thay đổi cấu trúc hàng của nó trên đường.

40.3.6. Đối chiếuPL/PGSQLBiến

Khi APL/PGSQLHàm có một hoặc nhiều tham số của tỷ lệ kèo bóng đá trực tuyến hôm nay loại dữ liệu có kết hợp, một đối chiếu là được xác định cho mỗi cuộc gọi chức năng tùy thuộc vào tỷ lệ kèo bóng đá trực tuyến hôm nay đối chiếu được gán cho tỷ lệ kèo bóng đá trực tuyến hôm nay đối số thực tế, như được mô tả trongPhần 22.2. Nếu đối chiếu thành công được xác định (tức là không có xung đột của tỷ lệ kèo bóng đá trực tuyến hôm nay đối chiếu ngầm trong số tỷ lệ kèo bóng đá trực tuyến hôm nay đối số) sau đó tất cả tỷ lệ kèo bóng đá trực tuyến hôm nay thông số có thể được xử lý như có sự đối chiếu đó ngầm. Điều này sẽ ảnh hưởng đến hành vi của tỷ lệ kèo bóng đá trực tuyến hôm nay hoạt động nhạy cảm đối đồng trong chức năng. Ví dụ, coi như

26268_26516

lần đầu tiên sử dụngLess_thanWill Sử dụng đối chiếu chung củatext_field_1text_field_2để so sánh, trong khi Sử dụng thứ hai sẽ sử dụngCđối chiếu.

Hơn nữa, đối chiếu được xác định cũng được coi là đối chiếu của bất kỳ biến cục bộ nào thuộc loại có thể có được. Do đó chức năng này sẽ không hoạt động khác nếu nó được viết BẰNG

27027_27212

Nếu không có tham số của tỷ lệ kèo bóng đá trực tuyến hôm nay loại dữ liệu có ghép hoặc không đối chiếu phổ biến có thể được xác định cho họ, sau đó tỷ lệ kèo bóng đá trực tuyến hôm nay tham số và tỷ lệ kèo bóng đá trực tuyến hôm nay biến cục bộ sử dụng đối chiếu mặc định của kiểu dữ liệu của họ (mà thường là đối chiếu mặc định của cơ sở dữ liệu, nhưng có thể khác cho tỷ lệ kèo bóng đá trực tuyến hôm nay biến của tỷ lệ kèo bóng đá trực tuyến hôm nay loại miền).

tỷ lệ kèo bóng đá trực tuyến hôm nay biến cục bộ của kiểu dữ liệu có thể có đối chiếu liên kết với nó bằng cách bao gồmđối chiếuTùy chọn trong khai tỷ lệ kèo bóng đá trực tuyến hôm nay của nó, ví dụ

Khai tỷ lệ kèo bóng đá trực tuyến hôm nay
    local_a văn bản đối chiếu "en_us";

Tùy chọn này ghi đè lên sự đối chiếu nếu không được trao cho biến theo tỷ lệ kèo bóng đá trực tuyến hôm nay quy tắc trên.

Ngoài ra, tất nhiên là rõ ràngđối chiếuĐiều khoản có thể được viết bên trong tỷ lệ kèo bóng đá trực tuyến hôm nay hàm nếu nó muốn buộc tỷ lệ kèo bóng đá trực tuyến hôm nay đối chiếu cụ thể sẽ được sử dụng trong tỷ lệ kèo bóng đá trực tuyến hôm nay hoạt động cụ thể. Vì ví dụ,

28135_28268

Điều này ghi đè tỷ lệ kèo bóng đá trực tuyến hôm nay đối chiếu được liên kết với tỷ lệ kèo bóng đá trực tuyến hôm nay cột bảng, tham số hoặc tỷ lệ kèo bóng đá trực tuyến hôm nay biến cục bộ được sử dụng trong biểu thức, giống như sẽ xảy ra trong một lệnh SQL đơn giản.