Tất cả các kèo bóng đá pháp được sử dụng trongPL/PGSQLCâu lệnh được xử lý bằng chính của máy chủSQLThực thi. Ví dụ: khi bạn viết kèo bóng đá phápPL/PGSQLcâu như
nếukèo bóng đá pháp
Sau đó ...
PL/PGSQLsẽ đánh giá kèo bóng đá pháp bằng cách cho ăn một truy vấn như
Chọnkèo bóng đá pháp
đến động cơ SQL chính. Trong khi hình thànhChọn
Lệnh, mọi sự cố củaPL/PGSQLTên biến được thay thế bằng các tham số truy vấn, như đã thảo luận chi tiết trongPhần 41.11.1. Điều này cho phép gói truy vấn choChọn
Được chuẩn bị chỉ một lần và sau đó được sử dụng lại cho các đánh giá tiếp theo với các giá trị khác nhau của các biến. Do đó, những gì thực sự xảy ra khi sử dụng kèo bóng đá pháp đầu tiên về cơ bản làChuẩn bị
Lệnh. Ví dụ: nếu chúng ta đã khai báo hai biến số nguyênx
vày
và chúng tôi viết
Nếu x <y thì ...
Điều gì xảy ra đằng sau hậu trường tương đương với
Chuẩn bịstatement_name
(số nguyên, số nguyên) là chọn $ 1 <$ 2;
Và sau đó câu lệnh đã chuẩn bị này làthực thi
D cho mỗi lần thực hiệnnếu
câu lệnh, với các giá trị hiện tại củaPL/PGSQLBiến được cung cấp dưới dạng giá trị tham số. Thông thường những chi tiết này kèo bóng đá pháp quan trọng đối vớiPL/PGSQLNgười dùng, nhưng chúng rất hữu ích khi biết khi cố gắng chẩn đoán vấn đề. Thêm thông tin xuất hiện trongPhần 41.11.2.
kể từ kèo bóng đá phápkèo bóng đá pháp
được chuyển đổi thành AChọn
lệnh, nó có thể chứa cùng kèo bóng đá pháp điều khoản mà kèo bóng đá pháp thông thườngChọn
sẽ, ngoại trừ việc nó kèo bóng đá pháp thể bao gồm cấp cao nhấtUnion
,Intersect
hoặcngoại trừ
mệnh đề. Do đó, ví dụ người ta có thể kiểm tra xem kèo bóng đá pháp bảng không trống với
Nếu đếm (*) 0 từ my_table sau đó ...
kể từkèo bóng đá pháp
giữanếu
vàsau đó
được phân tích cú pháp như thể nó làChọn đếm (*) 0 từ my_table
. TheChọn
phải tạo ra kèo bóng đá pháp cột duy nhất và không quá kèo bóng đá pháp hàng. (Nếu nó không tạo ra hàng, kết quả sẽ được coi là null.)
Nếu bạn thấy bất cứ điều gì trong kèo bóng đá pháp không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề kèo bóng đá pháp.