Postgresql Tài liệu 8.0.26 | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 35.PL/PGSQL - SQLNgôn ngữ thủ tục | 10350_10364 | Tiếp theo |
Tất cả các kèo chấp bóng đá hôm nay được sử dụng trongPL/PGSQLCâu lệnh được xử lý bằng cách sử dụng Máy chủ thông thườngSQLNgười thực thi. Trong thực tế, kèo chấp bóng đá hôm nay truy vấn như
Chọnkèo chấp bóng đá hôm nay
được thực thi bằngSPITrình quản lý. Trước khi đánh giá, sự xuất hiện kèo chấp bóng đá hôm nayPL/PGSQLĐịnh danh biến được thay thế bởi kèo chấp bóng đá hôm nay tham số và kèo chấp bóng đá hôm nay giá trị thực từ kèo chấp bóng đá hôm nay biến là được chuyển cho người thực thi trong mảng tham số. Điều này cho phép Kế hoạch truy vấn choChọnsẽ được chuẩn bị Chỉ một lần và sau đó được sử dụng lại cho kèo chấp bóng đá hôm nay đánh giá tiếp theo.
Đánh giá được thực hiện bởiPostgreSQLtrình phân tích cú pháp chính có một số tác dụng phụ Về việc giải thích kèo chấp bóng đá hôm nay giá trị không đổi. Chi tiết có một Sự khác biệt giữa những gì hai chức năng này làm:
11677_11857
và
Tạo hàm logfunc2 (văn bản logtxt) Trả về dấu thời gian như $$ TUYÊN BỐ Dấu thời gian Curtime; BẮT ĐẦU Curtime: = 'Bây giờ'; Chèn vào kèo chấp bóng đá hôm nay giá trị logtable (logtxt, curtime); Trả lại thời gian; KẾT THÚC; $$ ngôn ngữ plpgsql;
kèo chấp bóng đá hôm nay trường hợplogfunc1
, ThePostgreSQLTrình phân tích cú pháp chính biết
Khi chuẩn bị kế hoạch choChèn,,
Đó là chuỗi'bây giờ'nên được
được giải thích làTimestampVì mục tiêu
Cột kèo chấp bóng đá hôm naylogtable
là của điều đó
kiểu. Do đó, nó sẽ tạo ra một hằng số từ nó vào thời điểm này và điều này
Giá trị không đổi sau đó được sử dụng trong tất cả kèo chấp bóng đá hôm nay yêu cầu củalogfunc1
kèo chấp bóng đá hôm nay suốt vòng đời của phiên.
Không cần phải nói rằng đây không phải là điều mà lập trình viên muốn.
kèo chấp bóng đá hôm nay trường hợplogfunc2
, ThePostgreSQLTrình phân tích cú pháp chính không
Biết loại nào'bây giờ'nên trở thành và
Do đó, nó trả về giá trị dữ liệu kèo chấp bóng đá hôm nay loạiTextChứa chuỗiBây giờ. kèo chấp bóng đá hôm nay quá trình phân công tiếp theo cho địa phương
biếncurtime, ThePL/PGSQLPhiên dịch chuyển chuỗi này để
TheDấu thời giangõ bằng cách gọiText_out
vàTimestamp_in
Hàm cho chuyển đổi. Vì thế,
Dấu thời gian được tính toán được cập nhật trên mỗi lần thực thi là
lập trình viên mong đợi.
Bản chất có thể thay đổi của các biến bản ghi thể hiện một vấn đề trong kết nối này. Khi các trường của biến bản ghi được sử dụng trong kèo chấp bóng đá hôm nay hoặc câu lệnh, các loại dữ liệu của các trường không được thay đổi giữa các cuộc gọi của một và cùng một kèo chấp bóng đá hôm nay, vì kèo chấp bóng đá hôm nay sẽ được lên kế hoạch bằng cách sử dụng kiểu dữ liệu có mặt Khi kèo chấp bóng đá hôm nay được đạt đến lần đầu tiên. Hãy ghi nhớ điều này khi Viết các quy trình kích hoạt xử lý các sự kiện cho nhiều hơn một bàn. (thực thicó thể được sử dụng để lấy xung quanh vấn đề này khi cần thiết.)