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

41.8. Quản lý kèo bóng đá euro#

Trong kèo bóng đá euro thủ tục được gọi bởigọilệnh cũng như trong kèo bóng đá euro khối mã ẩn danh (doLệnh), có thể kết thúc các kèo bóng đá euro bằng các lệnhcam kếtrollback. Một kèo bóng đá euro mới được bắt đầu tự động sau khi kết thúc kèo bóng đá euro bằng cách sử dụng các lệnh này, do đó không có riêng biệtBắt đầu kèo bóng đá eurolệnh. (Lưu ý rằngbắt đầukết thúcCó ý nghĩa khác nhau trong PL/PGSQL.)

Đây là một ví dụ đơn giản:

Tạo quy trình kèo bóng đá euro 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 kèo bóng đá euro dịch_test1 ();

Một kèo bóng đá euro mới bắt đầu với các đặc điểm kèo bóng đá euro mặc định như mức cách ly kèo bóng đá euro. Trong trường hợp các kèo bóng đá euro được cam kết trong một vòng lặp, có thể tự động bắt đầu các kèo bóng đá euro 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ỗirollback và chuỗithực hiện điều này.

Điều khiển kèo bóng đá euro chỉ có thể trong9380_9386hoặcdoNhững lời mời từ cấp cao nhất hoặc lồng nhaugọihoặcdoNhữ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 kèo bóng đá euro. Nhưng nếu ngăn xếp cuộc gọi làGọi Proc1 ()Chọn func2 ()gọi Proc3 (), thì thủ tục cuối cùng không thể thực hiện kiểm soát kèo bóng đá euro, vìChọnở giữa.

PL/PGSQLKhông hỗ trợ SavePoints (SavePoint/rollback to savePoint/Phát hành SavePointlệnh). kèo bóng đá euro mẫu sử dụng điển hình cho kèo bóng đá euro điểm lưu có thể được thay thế bằng kèo bóng đá euro khối bằng trình xử lý ngoại lệ (xemPhần 41.6.8). Dưới mui xe, một khối có trình xử lý ngoại lệ tạo thành một phép trừ, điều đó có nghĩa là các kèo bóng đá euro không thể kết thúc bên trong một khối như vậy.

Cân nhắc đặc biệt áp dụng cho kèo bóng đá euro vòng lặp con trỏ. Xem xét ví dụ này:

10820_11070

Thông thường, con trỏ được tự động đóng khi cam kết kèo bóng đá euro. 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ếthoặcrollback. Điều đó có nghĩa là con trỏ được đánh giá đầy đủ ở lần đầu tiêncam kếthoặcrollbackthay 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. Nhưng người ta phải nhớ rằng bất kỳ khóa bảng hoặc hàng nào được thực hiện bởi truy vấn của con trỏ sẽ không còn được giữ sau lần đầu tiêncam kếthoặcrollback.

Các lệnh kèo bóng đá euro 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).

Gửi hiệu chỉnh

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ày13276_13340