이 문서는 지원되지 않는 버전의 토토 사이트 추천을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.
토토 사이트 추천
이전 제 38 장. 트리거 다음

트리거 관리자

위에서 언급했듯이 트리거가 함수를 호출 할 때 구조 TriggerData *CurrentTriggerData가 NULL이 아닙니다 초기화. 따라서 CurrentTriggerData를 확인하는 것이 좋습니다 처음에는 null이고 트리거 기능에 대한 호출을 방지하기위한 정보는 방아쇠 관리자.

struct triggerdata가 정의되어 있습니다 src/include/commands/trigger.h :

typedef strugdatigdata

        triggerevent tg_event;
        관계 tg_relation;
        heappuple tg_trigtuple;
        heappuple tg_newtuple;
        트리거 *tg_trigger;
 triggerData;
tg_event 
   함수가 호출되는 이벤트를 설명합니다. 당신은 그것을 사용할 수 있습니다
   tg_event를 검사하기 위해 매크로를 따라 :

   trigger_fired_before (이벤트) 이전에 트리거가 발사되면 true를 반환합니다.
   Trigger_Fired_After (이벤트)는 트리거가 발사되면 TRUE를 반환합니다.
   trigger_fired_for_row (이벤트) 트리거가 발사되면 true를 반환합니다
                                로우 레벨 이벤트;
   트리거 _fired_for_statement (이벤트) 트리거가 발사 된 경우 true를 반환합니다
                                성명서 수준 이벤트;
   trigger_fired_by_insert (event)는 삽입으로 트리거가 발사되면 true를 반환합니다.
   trigger_fired_by_delete (event)는 trigger에 의해 발사 된 경우 true를 반환합니다.
   trigger_fired_by_update (이벤트)는 업데이트로 트리거가 발사되면 true를 반환합니다.

tg_relation
   트리거 된 관계를 설명하는 구조에 대한 포인터입니다. 봐
   이 구조에 대한 자세한 내용은 src/include/utils/rel.h.  가장
   관심있는 것은 tg_relation- rd_att입니다 (관계의 설명 자
   튜플) 및 tg_relation- rd_rel- relname (관계의 이름. 이것은 아닙니다
   char*, 그러나 지명 된타.  spi_getrelname (tg_relation)을 사용하여 char* if를 얻습니다
   이름 사본이 필요합니다).

tg_trigtuple
   트리거가 발사되는 튜플에 대한 포인터입니다. 이것은 튜플입니다
   삽입 (삽입 된 경우), 삭제 (삭제 된 경우) 또는 업데이트 (업데이트).
   삽입/삭제되면 이것이 귀하가 집행자에게 돌아 오는 것입니다. 
   튜플을 다른 하나 (삽입)로 바꾸거나 건너 뛰는 것을 원하지 않습니다.
   작업.

tg_newtuple
   업데이트되고 Null이면 새 버전의 튜플에 대한 포인터입니다.
   인서트 또는 삭제. 이것은 당신이 집행자에게 돌아 오는 것입니다.
   업데이트하면이 튜플을 다른 튜플로 교체하거나 건너 뛰고 싶지 않습니다.
   작전.

tg_trigger
   src/include/utils/rel.h에 정의 된 구조 트리거에 대한 포인터입니다.

typedef 구조 트리거

        char *tgname;
        OID tgfoid;
        func_ptr tgfunc;
        int16 tgtype;
        int16 tgnargs;
        int16 tgattr [8];
        char ** tgargs;
 방아쇠;

   tgname은 방아쇠의 이름이며, tgnargs는 tgargs의 논증 수입니다.
   tgargs는 생성에 명시된 인수에 대한 다양한 포인터입니다.
   트리거 진술. 다른 회원은 내부 사용만을위한 것입니다.

이전 다음
트리거 up 데이터 가시성 변화