Phiên bản không được hỗ trợ:6.5
Tài tỷ lệ kèo bóng đá này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

tỷ lệ kèo bóng đáví dụ

Có nhiều ví dụ phức tạp hơn trong SRC/Test/Refor và trong đóng góp/spi.

Đây là một ví dụ rất đơn giản về việc sử dụng kích hoạt. Chức năng Trigf báo cáo số lượng các bộ dữ tỷ lệ kèo bóng đá trong mối quan hệ được kích hoạt và Bỏ qua thao tác nếu truy vấn cố gắng chèn null vào x (tức là - nó hoạt động như một ràng buộc không có null nhưng không phá thai giao dịch).

#include "Lệnh/Trigger.h"/ * - " - và kích hoạt *//

Trigf trigf (void);

Nặng trĩu
Trigf ()

        Tuppledesc Tupdesc;
        Nặng nề Rettuple;
        char *khi nào;
        Bool Checknull = Sai;
        Bool isnull;
        int ret, i;

        if (! currentTriggerData)
                ELOG (WARN, "Trigf: Triggers không được khởi tạo");

        / * tuple để trở lại thực thi */
        if (trigger_fired_by_update (currentTriggerData- tg_event)))
                rettuple = currentTriggerData- tg_newtuple;
        khác
                rettuple = currentTriggerData- tg_trigtuple;

        /* Kiểm tra nulls? */
        if (! Trigger_fired_by_delete (currentTriggerData- tg_event) &&
                Trigger_fired_befor (currentTriggerData- tg_event))
                CheckNull = true;

        if (trigger_fired_befor (currentTriggerData- tg_event)))
                Khi = "trước";
        khác
                Khi = "sau";

        TUPDESC = currentTriggerData- tg_relation- rd_att;
        CurrentTriggerData = null;

        / * Kết nối với Trình quản lý SPI */
        if ((ret = spi_connect ()) <0)
                ELOG (WARN, "Trigf (bị sa thải %s): spi_connect trả về %d", khi, ret);

        / * Nhận số lượng bộ dữ tỷ lệ kèo bóng đá liên quan */
        ret = spi_exec ("chọn đếm (*) từ ttest", 0);

        if (ret <0)
                ELOG (WARN, "Trigf (bị sa thải %s): spi_exec trả về %d", khi, ret);

        i = spi_getbinval (spi_tuptable- vals [0], spi_tuptable- tupdesc, 1, & isnull);

        ELOG (Thông báo, "Trigf (bị sa thải %s): Có %d Tuples trong ttest", khi, i);

        Spi_finish ();

        Nếu (Checknull)

                i = spi_getbinval (rettuple, tupdesc, 1, & isnull);
                Nếu (isnull)
                        rettuple = null;

        Trả lại (Rettuple);

Bây giờ, biên dịch và tạo bảng ttest (x int4); tạo chức năng tỷ lệ kèo bóng đá () trả về mờ đục dưới dạng '... path_to_so' ngôn ngữ 'c';

Vac = Tạo kích hoạt trước khi chèn hoặc cập nhật hoặc xóa trên ttest 
cho mỗi hàng thực thi quy trình Trigf ();
TẠO NÊN
Vac = Tạo Trigger Tafter sau khi chèn hoặc cập nhật hoặc xóa trên ttest 
cho mỗi hàng thực thi quy trình Trigf ();
TẠO NÊN
Vac = chèn vào các giá trị ttest (null);
THÔNG BÁO: Trigf (bị sa thải trước): Có 0 bộ dữ tỷ lệ kèo bóng đá trong ttest
Chèn 0 0

- Chèn bị bỏ qua và sau khi kích hoạt không được bắn

Vac = Chọn * từ ttest;
x
-
(0 hàng)

Vac = chèn vào các giá trị ttest (1);
THÔNG BÁO: Trigf (bị sa thải trước): Có 0 bộ dữ tỷ lệ kèo bóng đá trong ttest
Lưu ý: Trigf (bị sa thải sau): Có 1 bộ dữ
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                             Hãy nhớ những gì chúng tôi đã nói về tầm nhìn.
Chèn 167793 1
Vac = Chọn * từ ttest;
x
-
1
(1 hàng)

Vac = Chèn vào ttest Chọn x * 2 từ ttest;
THÔNG BÁO: Trigf (bị sa thải trước): Có 1 bộ dữ
THÔNG BÁO: Trigf (bị sa thải sau): Có 2 bộ dữ
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                             Hãy nhớ những gì chúng tôi đã nói về tầm nhìn.
Chèn 167794 1
Vac = Chọn * từ ttest;
x
-
1
2
(2 hàng)

Vac = Cập nhật tập hợp ttest x = null trong đó x = 2;
Lưu ý: Trigf (bị sa thải trước): Có 2 bộ dữ
Cập nhật 0
Vac = Cập nhật bộ ttest x = 4 trong đó x = 2;
Lưu ý: Trigf (bị sa thải trước): Có 2 bộ dữ
THÔNG BÁO: Trigf (bị sa thải sau): Có 2 bộ dữ
Cập nhật 1
Vac = Chọn * từ ttest;
x
-
1
4
(2 hàng)

Vac = Xóa khỏi ttest;
Lưu ý: Trigf (bị sa thải trước): Có 2 bộ dữ
Lưu ý: Trigf (bị sa thải sau): Có 1 bộ dữ
THÔNG BÁO: Trigf (bị sa thải trước): Có 1 bộ dữ
THÔNG BÁO: Trigf (bị sa thải sau): Có 0 bộ dữ tỷ lệ kèo bóng đá trong ttest
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                             Hãy nhớ những gì chúng tôi đã nói về tầm nhìn.
Xóa 2
Vac = Chọn * từ ttest;
x
-
(0 hàng)