Trong tỷ lệ kèo bóng đá thủ tục được gọi bởigọi
lệnh cũng như trong tỷ lệ kèo bóng đá khối mã ẩn danh (do
Lệnh), có thể kết thúc các tỷ lệ kèo bóng đá bằng cách sử dụng các lệnhcam kết
vàrollback
. Một tỷ lệ kèo bóng đá mới được bắt đầu tự động sau khi kết thúc tỷ lệ kèo bóng đá bằng cách sử dụng các lệnh này, do đó không có riêng biệtBắt đầu tỷ lệ kèo bóng đá
lệnh. (Lưu ý rằngBắt đầu
vàkết thúc
Có ý nghĩa khác nhau trong PL/PGSQL.)
Đây là một ví dụ đơn giản:
Tạo quy trình tỷ lệ kèo bóng đá dịch_Test1 () Ngôn ngữ plpgsql Như $$ BẮT ĐẦU Cho tôi trong 0..9 vòng lặp Chèn vào các giá trị test1 (a) (i); Nếu i % 2 = 0 thì LÀM; KHÁC Rollback; Kết thúc nếu; Kết thúc vòng lặp; KẾT THÚC; $$; Gọi tỷ lệ kèo bóng đá dịch_test1 ();
Một tỷ lệ kèo bóng đá mới bắt đầu với các đặc điểm tỷ lệ kèo bóng đá mặc định như mức cách ly tỷ lệ kèo bóng đá. Trong trường hợp các tỷ lệ kèo bóng đá được thực hiện trong một vòng lặp, có thể tự động bắt đầu các tỷ lệ kèo bóng đá mới với các đặc điểm giống như các đặc điểm trước. Các lệnhcam kết và chuỗi
vàrollback và chuỗi
thực hiện điều này.
Điều khiển tỷ lệ kèo bóng đá chỉ có thể tronggọi
hoặcdo
Những lời mời từ cấp cao nhất hoặc lồng nhaugọi
hoặcdo
Những lời mời mà không có bất kỳ lệnh can thiệp nào khác. Ví dụ: nếu ngăn xếp cuộc gọi làgọi Proc1 ()
→gọi Proc2 ()
→Gọi Proc3 ()
, sau đó các thủ tục thứ hai và thứ ba có thể thực hiện các hành động kiểm soát tỷ lệ kèo bóng đá. Nhưng nếu ngăn xếp cuộc gọi làgọi Proc1 ()
→Chọn func2 ()
→Gọi Proc3 ()
, thì quy trình cuối cùng không thể thực hiện kiểm soát tỷ lệ kèo bóng đá, vìChọn
ở giữa.
Cân nhắc đặc biệt áp dụng cho tỷ lệ kèo bóng đá vòng lặp con trỏ. Xem xét ví dụ này:
Tạo quy trình tỷ lệ kèo bóng đá dịch_test2 () Ngôn ngữ plpgsql Như $$ TUYÊN BỐ r bản ghi; BẮT ĐẦU Đối với r trong Chọn * Từ Đơn hàng Test2 của X Loop Chèn vào các giá trị test1 (a) (r.x); LÀM; Kết thúc vòng lặp; KẾT THÚC; $$; Gọi tỷ lệ kèo bóng đá dịch_Test2 ();
Thông thường, con trỏ được tự động đóng khi cam kết tỷ lệ kèo bóng đá. Tuy nhiên, một con trỏ được tạo ra như một phần của vòng lặp như thế này được tự động chuyển đổi thành con trỏ có thể giữ được bởi đầu tiêncam kết
hoặcrollback
. Điều đó có nghĩa là con trỏ được đánh giá đầy đủ ở lần đầu tiêncam kết
hoặcrollback
thay vì hàng từng hàng. Con trỏ vẫn được gỡ bỏ tự động sau vòng lặp, vì vậy điều này chủ yếu là vô hình đối với người dùng.
Các lệnh tỷ lệ kèo bóng đá không được phép trong các vòng lặp con trỏ được điều khiển bởi các lệnh không chỉ đọc (ví dụCập nhật ... Trả lại
).
Một tỷ lệ kèo bóng đá không thể kết thúc bên trong một khối với trình xử lý ngoại lệ.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.