Postgresql 7.4.30 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 37.PL/PGSQL - SQLNgôn ngữ thủ tục | Chuyển tiếp nhanh | Tiếp theo |
Trong phần này và các phần sau, chúng tôi mô tả tất cả Các loại câu tỷ lệ kèo bóng đá trực tuyến hôm nay được hiểu rõ ràng bởiPL/PGSQL. Bất cứ điều gì không được công nhận là một trong những Các loại câu tỷ lệ kèo bóng đá trực tuyến hôm nay này được coi là một tỷ lệ kèo bóng đá trực tuyến hôm nay SQL và là được gửi đến công cụ cơ sở dữ liệu chính để thực thi (sau khi thay thế của bất kỳPL/PGSQLBiến được sử dụng Trong tuyên bố). Do đó, ví dụ, các tỷ lệ kèo bóng đá trực tuyến hôm nay SQLChèn, Cập nhậtvàXóacó thể được coi là các câu tỷ lệ kèo bóng đá trực tuyến hôm nayPL/PGSQL, nhưng họ không được liệt kê cụ thể ở đây.
Một gán giá trị cho một biến hoặc trường hàng/tỷ lệ kèo bóng đá trực tuyến hôm nay ghi được viết là:
định danh: =Biểu thức;
Như đã giải thích ở trên, biểu thức trong tỷ lệ kèo bóng đá trực tuyến hôm nay tuyên bố như vậy là được đánh giá bằng phương tiện của SQLChọntỷ lệ kèo bóng đá trực tuyến hôm nay được gửi đến công cụ cơ sở dữ liệu chính. Biểu thức phải mang lại một giá trị duy nhất.
Nếu kiểu dữ liệu kết quả của biểu thức không khớp với Kiểu dữ liệu của biến hoặc biến có tỷ lệ kèo bóng đá trực tuyến hôm nay kích thước/độ chính xác (nhưChar (20)), The Giá trị kết quả sẽ được chuyển đổi hoàn toàn bởiPL/PGSQLThông dịch viên sử dụng kết quả Chức năng đầu ra của loại và chức năng đầu vào của loại biến. Lưu ý rằng điều này có khả năng có khả năng dẫn đến lỗi thời gian chạy được tạo bởi hàm đầu vào, nếu dạng chuỗi của Giá trị kết quả không được chấp nhận cho chức năng đầu vào.
ví dụ:
user_id: = 20; Thuế: = Subtotal * 0,06;
Kết quả của AChọntỷ lệ kèo bóng đá trực tuyến hôm nay mang lại nhiều cột (nhưng chỉ có thể gán một hàng một biến bản ghi, biến loại hàng hoặc danh sách vô hướng Biến. Điều này được thực hiện bởi:
Chọn vàoTarget select_expressionstừ ...;
WHERETargetcó thể là một tỷ lệ kèo bóng đá trực tuyến hôm nay ghi Biến, biến hàng hoặc danh sách đơn giản được phân tách bằng dấu phẩy Các biến và trường ghi/hàng. Theselect_expressionsvà phần còn lại của tỷ lệ kèo bóng đá trực tuyến hôm nay giống như trong SQL thông thường.
Lưu ý rằng điều này hoàn toàn khác vớiPostgreSQLcách giải thích bình thường củaChọn vào13800_13814thànhTarget là tỷ lệ kèo bóng đá trực tuyến hôm nay bảng mới được tạo. Nếu bạn muốn tạo tỷ lệ kèo bóng đá trực tuyến hôm nay bảng từ tỷ lệ kèo bóng đá trực tuyến hôm nayChọnKết quả bên trong APL/PGSQLchức năng, sử dụng cú phápTạo bảng ... Như chọn.
Nếu một hàng hoặc danh sách biến được sử dụng làm mục tiêu, được chọn các giá trị phải khớp chính xác với cấu trúc của mục tiêu hoặc Lỗi thời gian chạy xảy ra. Khi một biến tỷ lệ kèo bóng đá trực tuyến hôm nay ghi là mục tiêu, nó tự động cấu hình chính nó theo loại hàng của truy vấn Các cột kết quả.
ngoại trừthànhmệnh đề,ChọnCâu tỷ lệ kèo bóng đá trực tuyến hôm nay giống như A SQL bình thườngChọntỷ lệ kèo bóng đá trực tuyến hôm nay và có thể sử dụng toàn bộ sức mạnh của nó.
Nếu truy vấn trả về tỷ lệ kèo bóng đá trực tuyến hôm nay hàng không, tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị null được gán cho mục tiêu. Nếu truy vấn trả về nhiều hàng, cái đầu tiên Hàng được gán cho (tỷ lệ kèo bóng đá trực tuyến hôm nay) mục tiêu và phần còn lại bị loại bỏ. (Lưu ý rằng"Hàng đầu tiên"không được xác định rõ trừ khi bạn đã sử dụngThứ tự QUA.)
Hiện tại,thànhmệnh đề có thể xuất hiện ở hầu hết mọi nơi trongChọncâu tỷ lệ kèo bóng đá trực tuyến hôm nay, nhưng nên đặt nó ngay sau đó TheChọnTừ khóa như được mô tả ở trên. Phiên tỷ lệ kèo bóng đá trực tuyến hôm nay tương lai củaPL/PGSQLcó thể ít tha thứ về vị trí củathànhmệnh đề.
Bạn có thể sử dụngtìm thấyNgay sau đó tỷ lệ kèo bóng đá trực tuyến hôm nayChọn vào15494_15637
Chọn vào myRec * từ empname = myname; Nếu không tìm thấy thì Tăng ngoại lệ '' Nhân viên % không tìm thấy '', myname; Kết thúc nếu;
Để kiểm tra xem kết quả tỷ lệ kèo bóng đá trực tuyến hôm nay ghi/hàng có phải là NULL hay không, bạn có thể sử dụng Thelà nullCó điều kiện. Có, Tuy nhiên, không có cách nào để biết liệu có bất kỳ hàng bổ sung nào có thể có đã bị loại bỏ. Đây là tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ xử lý trường hợp trong đó Không có hàng nào được trả về:
Khai báo user_rec tỷ lệ kèo bóng đá trực tuyến hôm nay ghi; full_name varchar; BẮT ĐẦU Chọn vào Users_Rec * từ người dùng WHERE user_id = 3; Nếu Users_Rec.Homepage là NULL thì - Người dùng không nhập trang chủ, trả lại "http: //" Trả về '' http: // ''; Kết thúc nếu; KẾT THÚC;
16615_16825PL/PGSQL, Sử dụngthực hiệncâu tỷ lệ kèo bóng đá trực tuyến hôm nay:
thực hiệnTruy vấn;
17015_17031Truy vấn, mà Phải làChọnCâu tỷ lệ kèo bóng đá trực tuyến hôm nay, và loại bỏ kết quả.PL/PGSQLBiến được thay thế trong truy vấn như bình thường. Ngoài ra, Biến đặc biệttìm thấyđược đặt thành true Nếu truy vấn được tạo ra ít nhất tỷ lệ kèo bóng đá trực tuyến hôm nay hàng hoặc sai nếu nó được sản xuất Không có hàng.
Lưu ý:Người ta có thể mong đợi rằngChọnkhông cóthànhĐiều khoản sẽ hoàn thành kết quả này, nhưng hiện tại Chỉ được chấp nhận để làm điều đó làthực hiện.
tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ:
thực hiện created_mv ('' cs_session_page_requests_mv '', my_query);
Thông thường, bạn sẽ muốn tạo các tỷ lệ kèo bóng đá trực tuyến hôm nay động bên trong của bạnPL/PGSQL18209_18337PL/PGSQL18381_18507thực thiTuyên bố được cung cấp:
thực thichuỗi tỷ lệ kèo bóng đá trực tuyến hôm nay;
WHERE18700_18716là tỷ lệ kèo bóng đá trực tuyến hôm nay Biểu thức mang lại tỷ lệ kèo bóng đá trực tuyến hôm nay chuỗi (loạiText) chứa tỷ lệ kèo bóng đá trực tuyến hôm nay sẽ được thực thi. Cái này Chuỗi được cho ăn theo nghĩa đen vào động cơ SQL.
Lưu ý cụ thể là không thay thếPL/PGSQLBiến được thực hiện trên tỷ lệ kèo bóng đá trực tuyến hôm nay sợi dây. Các giá trị của các biến phải được chèn vào tỷ lệ kèo bóng đá trực tuyến hôm nay Chuỗi khi nó được xây dựng.
Khi làm việc với các tỷ lệ kèo bóng đá trực tuyến hôm nay động, bạn sẽ phải đối mặt thoát khỏi các trích dẫn đơn trongPL/PGSQL. Vui lòng tham khảo tổng quan trongPhần 37.2.1, có thể tiết kiệm cho bạn tỷ lệ kèo bóng đá trực tuyến hôm nay số nỗ lực.
Không giống như tất cả các tỷ lệ kèo bóng đá trực tuyến hôm nay khác trongPL/PGSQL, một tỷ lệ kèo bóng đá trực tuyến hôm nay được chạy bởi mộtthực thiTuyên bố không được chuẩn bị và lưu chỉ một lần trong suốt cuộc đời của phiên. Thay vào đó, tỷ lệ kèo bóng đá trực tuyến hôm nay là Chuẩn bị mỗi lần tuyên bố được chạy. Chuỗi tỷ lệ kèo bóng đá trực tuyến hôm nay có thể được tạo động trong chức năng để thực hiện các hành động trên các bảng và cột biến.
Kết quả từChọntỷ lệ kèo bóng đá trực tuyến hôm nay bị loại bỏ bởithực thivàChọn vàoHiện không được hỗ trợ ở trongthực thi. Có hai cách để Trích xuất kết quả từ tỷ lệ kèo bóng đá trực tuyến hôm nay tạo ra độngChọn: người ta phải sử dụngfor-in-Executehình thức vòng lặp được mô tả trongPhần 37.7.4và cái khác là sử dụng con trỏ vớiMở-for-Execute, như được mô tả trongPhần 37.8.2.
tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ:
Thực thi '' Cập nhật bộ TBL '' || quote_ident (colname) || '' = '' || quote_literal (newValue) || '' Ở ĐÂU ...'';
Ví dụ này hiển thị việc sử dụng tỷ lệ kèo bóng đá trực tuyến hôm nay chức năngquote_ident (Text)
vàquote_literal (Text)
.cho
An toàn, tỷ lệ kèo bóng đá trực tuyến hôm nay biến có chứa số nhận dạng cột và bảng
nên được truyền đến chức năngquote_ident
21217_21335quote_literal
. Cả hai
thực hiện các bước thích hợp để trả về văn tỷ lệ kèo bóng đá trực tuyến hôm nay đầu vào được đặt trong
Báo giá kép hoặc đơn tương ứng, với bất kỳ đặc biệt nào được nhúng
ký tự đã thoát ra đúng cách.
Đây là một ví dụ lớn hơn nhiều về tỷ lệ kèo bóng đá trực tuyến hôm nay động vàthực thi:
Tạo hàm CS_UPDATE_REFERRER_TYPE_PROC () Trả về số nguyên là ' TUYÊN BỐ Giới thiệu_Keys Record; - khai báo một tỷ lệ kèo bóng đá trực tuyến hôm nay ghi chung sẽ được sử dụng trong A_output varchar (4000); BẮT ĐẦU a_output: = '' Tạo chức năng CS_FIND_REFERRER_TYPE (VARCHAR, VARCHAR, VARCHAR) Trả về varchar là '' '' TUYÊN BỐ bí danh V_host với giá $ 1; bí danh V_Domain với giá $ 2; bí danh V_URL với giá 3 đô la; BẮT ĐẦU ''; - Lưu ý cách chúng tôi quét qua kết quả của một truy vấn trong một vòng lặp - Sử dụng cấu trúc for <record. Đối với người giới thiệu_keys trong Chọn * từ CS_Referrer_Keys Order bằng cách lặp lại a_output: = a_output || '' Nếu v_ '' || Giới thiệu_KEYS.KIND || '' GIỐNG '''''''''' || Giới thiệu_KEYS.KEY_STRING || '' '' '' '' '' '' || giới thiệu_keys.referrer_type || '' '' '' '; Kết thúc nếu; ''; Kết thúc vòng lặp; a_output: = a_output || '' Trả lại null; KẾT THÚC; '' '' Ngôn ngữ plpgsql; ''; Thực thi a_output; KẾT THÚC; 'Ngôn ngữ plpgsql;
Có một số cách để xác định ảnh hưởng của tỷ lệ kèo bóng đá trực tuyến hôm nay. Phương pháp đầu tiên là sử dụngNhận Chẩn đoántỷ lệ kèo bóng đá trực tuyến hôm nay, có biểu mẫu:
Nhận chẩn đoánBiến=Mục[, ...];
tỷ lệ kèo bóng đá trực tuyến hôm nay này cho phép truy xuất các chỉ báo trạng thái hệ thống. MỗiMụclà một từ khóa Xác định giá trị trạng thái được gán cho được chỉ định Biến (phải là loại dữ liệu phù hợp để nhận Nó). tỷ lệ kèo bóng đá trực tuyến hôm nay mục trạng thái hiện có làROW_COUNT, số lượng hàng được xử lý bởi cuối cùngSQLtỷ lệ kèo bóng đá trực tuyến hôm nay được gửi xuống đếnSQL23837_23856result_oid, oid của hàng cuối cùng được chèn bởi gần đây nhấtSQLtỷ lệ kèo bóng đá trực tuyến hôm nay. Lưu ý rằngresult_oidchỉ hữu ích sauChèntỷ lệ kèo bóng đá trực tuyến hôm nay.
tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ:
Nhận chẩn đoán integer_var = row_count;
Phương pháp thứ hai để xác định các hiệu ứng của tỷ lệ kèo bóng đá trực tuyến hôm nay là Để kiểm tra biến đặc biệt có têntìm thấy, thuộc loạiBoolean. tìm thấyBắt đầu Sai trong mỗiPL/PGSQLCuộc gọi chức năng. Nó được đặt bởi từng loại sau của Các câu tỷ lệ kèo bóng đá trực tuyến hôm nay:
AChọn vàoBộ câu tỷ lệ kèo bóng đá trực tuyến hôm naytìm thấyĐúng nếu nó trả lại tỷ lệ kèo bóng đá trực tuyến hôm nay hàng, Sai nếu không có hàng được trả về.
Athực hiệnBộ câu tỷ lệ kèo bóng đá trực tuyến hôm naytìm thấyĐúng nếu nó sản xuất (và loại bỏ) tỷ lệ kèo bóng đá trực tuyến hôm nay hàng, sai nếu không có hàng được sản xuất.
Cập nhật, ChènvàXóaCâu tỷ lệ kèo bóng đá trực tuyến hôm naytìm thấyĐúng nếu tại ít nhất tỷ lệ kèo bóng đá trực tuyến hôm nay hàng bị ảnh hưởng, sai nếu không có hàng bị ảnh hưởng.
AFetchbộ câu tỷ lệ kèo bóng đá trực tuyến hôm nayTìm thấyĐúng nếu nó trả lại tỷ lệ kèo bóng đá trực tuyến hôm nay hàng, Sai nếu không có hàng được trả về.
Achobộ câu tỷ lệ kèo bóng đá trực tuyến hôm naytìm thấyĐúng nếu nó lặp lại tỷ lệ kèo bóng đá trực tuyến hôm nay hoặc nhiều lần, khác sai. Điều này áp dụng cho cả ba biến thể củachocâu tỷ lệ kèo bóng đá trực tuyến hôm nay (số nguyênchovòng lặp, tỷ lệ kèo bóng đá trực tuyến hôm nay ghichovòng lặp và tỷ lệ kèo bóng đá trực tuyến hôm nay ghi độngchovòng lặp).tìm thấychỉ được đặt khichoVòng lặp thoát: bên trong việc thực hiện vòng lặp,tìm thấykhông được sửa đổi bởichoTuyên bố, mặc dù nó có thể được thay đổi bởi việc thực hiện các câu tỷ lệ kèo bóng đá trực tuyến hôm nay khác trong thân vòng.
tìm thấylà một biến cục bộ; bất kì tỷ lệ kèo bóng đá trực tuyến hôm nay thay đổi đối với nó chỉ ảnh hưởng đến hiện tạiPL/PGSQLchức năng.