이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

상호작용 윈 토토 관리자

위에서 언급한 바와 같이 윈 토토에 의해 함수가 호출될 때 관리자, 구조 TriggerData *CurrentTriggerData는 NULL이 아니며 초기화되었습니다. 따라서 CurrentTriggerData를 확인하는 것이 좋습니다. 처음에는 NULL이고 가져온 직후에 NULL로 설정됩니다. 다른 곳에서 윈 토토 함수를 호출하는 것을 방지하기 위한 정보 윈 토토 관리자.

구조 TriggerData는 다음에 정의되어 있습니다. src/include/commands/trigger.h:

typedef 구조체 TriggerData

        TriggerEvent tg_event;
        관계 tg_relation;
        힙튜플 tg_trigtuple;
        힙튜플 tg_newtuple;
        윈 토토 *tg_trigger;
 TriggerData;
tg_event 
   함수가 호출되는 이벤트를 설명합니다. 당신은 사용할 수 있습니다
   tg_event를 검사하려면 다음 매크로를 사용하세요.

   TRIGGER_FIRED_BEFORE(event)는 윈 토토가 BEFORE 전에 실행된 경우 TRUE를 반환합니다.
   TRIGGER_FIRED_AFTER(event)는 윈 토토가 이후에 실행되면 TRUE를 반환하고, 그렇지 않으면 TRUE를 반환합니다.
   TRIGGER_FIRED_FOR_ROW(이벤트)는 윈 토토가 실행된 경우 TRUE를 반환합니다.
                                ROW 수준 이벤트
   TRIGGER_FIRED_FOR_STATEMENT(이벤트)는 윈 토토가 실행된 경우 TRUE를 반환합니다.
                                STATEMENT 수준 이벤트.
   TRIGGER_FIRED_BY_INSERT(event)는 INSERT에 의해 윈 토토가 실행되면 TRUE를 반환합니다.
   TRIGGER_FIRED_BY_DELETE(event)는 DELETE에 의해 윈 토토가 실행되면 TRUE를 반환합니다.
   TRIGGER_FIRED_BY_UPDATE(event)는 UPDATE에 의해 윈 토토가 실행되면 TRUE를 반환합니다.

tg_관계
   윈 토토된 관계를 설명하는 구조에 대한 포인터입니다. 봐
   이 구조에 대한 자세한 내용은 src/include/utils/rel.h를 참조하세요.  가장
   관심 사항은 tg_relation-rd_att(관계 설명자)입니다.
   튜플) 및 tg_relation-rd_rel-relname(관계 이름. 이것은 아닙니다.
   char*이지만 NameData.  char*를 얻으려면 SPI_getrelname(tg_relation)을 사용하십시오.
   이름 사본이 필요합니다.)

tg_trigttuple
   윈 토토가 실행되는 튜플에 대한 포인터입니다. 이것이 튜플이다
   삽입(INSERT의 경우), 삭제(DELETE의 경우) 또는 업데이트(UPDATE의 경우) 중입니다.
   INSERT/DELETE인 경우 다음과 같은 경우 Executor로 반환됩니다. 
   튜플을 다른 것으로 교체하거나(INSERT) 건너뛰고 싶지 않은 경우
   운영.

tg_newtuple
   UPDATE인 경우 튜플의 새 버전에 대한 포인터이고, 이것이인 경우 NULL입니다.
   INSERT 또는 DELETE의 경우. 다음과 같은 경우 Executor로 반환해야 합니다.
   업데이트하고 이 튜플을 다른 튜플로 바꾸거나 건너뛰고 싶지 않습니다.
   작업.

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

typedef 구조체 윈 토토

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

   tgname은 윈 토토의 이름이고, tgnargs는 tgargs의 인수 수입니다.
   tgargs는 CREATE에 지정된 인수에 대한 포인터 배열입니다.
   TRIGGER 문. 다른 구성원은 내부 전용입니다.