Phiên bản không được hỗ trợ:7.3 / 7.2 / 7.1
Tài liệu 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ế.

20.2. Tương tác với trình kích kèo bóng đá hom nay Giám đốc

5904_6156

Lưu ý:6232_6282PostgreSQL7.1 trở lên. Các phiên bản trước đó đã vượt qua con trỏ TriggerData trong toàn cầu Biến hiện tạiTriggerData.

Khi một hàm được gọi bởi trình quản lý kích kèo bóng đá hom nay, nó không phải là đã vượt qua bất kỳ tham số thông thường nào, nhưng nó được truyền một"Bối cảnh"Con trỏ trỏ vào TriggerData kết cấu. Các chức năng C có thể kiểm tra xem chúng có được gọi từ Trình quản lý kích kèo bóng đá hom nay hoặc không bằng cách thực thi macrođược gọi là_as_trigger (fcinfo), mở rộng sang

((fcinfo)- bối cảnh! = Null && isa ((fcinfo)- bối cảnh, kèo bóng đá hom nay tạo

Nếu điều này trả về đúng, thì việc đúc là an toàn fcinfo- bối cảnh để gõTriggerData *và sử dụng cấu trúc trỏ-để kích kèo bóng đá hom nay. Các chức năng phảikhôngThay đổi cấu trúc kích kèo bóng đá hom nay hoặc bất kỳ dữ liệu nào mà nó trỏ đến.

struct TriggerData được xác định trong src/bao gồm/lệnh/kích kèo bóng đá hom nayh:

Typedef Struct TriggerData

    Loại gật đầu;
    TriggerEvent tg_event;
    Quan hệ tg_relation;
    Nặng TG_Trigtuple;
    Nặng nề tg_newtuple;
    Kích kèo bóng đá hom nay *tg_trigger;
 TriggerData;

nơi các thành viên được xác định như sau:

loại

luôn luônT_TriggerDataNếu đây là một sự kiện kích kèo bóng đá hom nay.

TG_Event

Mô tả sự kiện mà hàm được gọi. Bạn có thể sử dụng các macro sau để kiểm traTG_Event:

Trigger_fired_before (tg_event)

Trả về đúng nếu kích kèo bóng đá hom nay trước.

Trigger_fired_after (TG_Event)

Trả về đúng nếu kích kèo bóng đá hom nay bị bắn sau.

Trigger_fired_for_row (sự kiện)

Trả về true nếu kích kèo bóng đá hom nay được bắn cho một cấp độ hàng sự kiện.

Trigger_fired_for_statement (sự kiện)

Trả về đúng nếu kích kèo bóng đá hom nay được bắn cho cấp độ tuyên bố sự kiện.

Trigger_fired_by_insert (sự kiện)

Trả về đúng nếu kích kèo bóng đá hom nay được bắn bằng cách chèn.

Trigger_fired_by_delete (sự kiện)

Trả về đúng nếu kích kèo bóng đá hom nay được bắn bằng cách xóa.

Trigger_fired_by_update (sự kiện)

Trả về đúng nếu kích kèo bóng đá hom nay được kích kèo bóng đá hom nay bởi bản cập nhật.

tg_relation

là một con trỏ tới cấu trúc mô tả kích kèo bóng đá hom nay mối quan hệ. Nhìn vào SRC/bao gồm/Utils/Rel.h để biết chi tiết về Cấu trúc này. Những điều quan tâm nhất là TG_RELATION- RD_ATT (Bộ mô tả về các bộ dữ liệu quan hệ) và tg_relation- rd_rel- relname (tên quan hệ. Đây không phải là char*, nhưng được đặt tên là. Sử dụng Spi_getrelname (tg_relation) để nhận char* nếu bạn cần một bản sao tên).

tg_trigtuple

là một con trỏ tới tuple mà bộ kích kèo bóng đá hom nay là sa thải. Đây là bộ tuple được chèn (nếu chèn), đã xóa (nếu xóa) hoặc cập nhật (nếu cập nhật). Nếu như Chèn/xóa thì đây là những gì bạn sẽ trở lại Người thực thi nếu bạn không muốn thay thế tuple bằng người khác một (chèn) hoặc bỏ qua thao tác.

TG_Newtuple

là một con trỏ đến phiên bản mới của tuple nếu cập nhật và Null nếu đây là cho một chèn hoặc xóa. Đây là những gì bạn sẽ trở lại để thực thi nếu cập nhật và bạn không muốn thay thế bộ tuple này bằng một cái khác hoặc bỏ qua kèo bóng đá hom nay động.

tg_trigger

là con trỏ tới cấu trúc kích kèo bóng đá hom nay được xác định trong src/bao gồm/utils/rel.h:

10678_11030

Trong đó tgname là tên của bộ kích kèo bóng đá hom nay, TGNARGS là số lượng lập luận trong TGGGS, TGGGS là một loạt các gợi ý cho Đối số được chỉ định trong câu lệnh Creating Trigger. Khác các thành viên chỉ sử dụng nội bộ.