이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 38.3. C의 스포츠 토토 트리거 기능 작성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

39.3. C에서 이벤트 트리거 함수 작성

이 섹션에서는 이벤트 트리거 기능에 대한 인터페이스의 하위 수준 세부정보를 설명합니다. 이 정보는 C에서 이벤트 트리거 함수를 작성할 때만 필요합니다. 고급 언어를 사용하는 경우 이러한 세부 정보가 자동으로 처리됩니다. 대부분의 경우 C로 이벤트 트리거를 작성하기 전에 절차적 언어 사용을 고려해야 합니다. 각 절차적 언어 문서에는 해당 언어로 이벤트 트리거를 작성하는 방법이 설명되어 있습니다.

이벤트 트리거 기능은 다음을 사용해야 합니다.버전 1함수 관리자 인터페이스.

이벤트 토토 관리자가 함수를 호출하면 일반 인수가 전달되지 않지만 a가 전달됩니다.컨텍스트a를 가리키는 포인터EventTriggerData구조. C 함수는 매크로를 실행하여 이벤트 토토 관리자에서 호출되었는지 여부를 확인할 수 있습니다.

CALLED_AS_EVENT_TRIGGER(fcinfo)

다음으로 확장:

((fcinfo)-컨텍스트 != NULL && IsA((fcinfo)-컨텍스트, EventTriggerData))

이것이 true를 반환하면 전송하는 것이 안전합니다.fcinfo-컨텍스트입력하려면EventTriggerData *그리고 가리키는 것을 활용EventTriggerData구조. 이 기능은 다음과 같아야 합니다.아님변경EventTriggerData구조 또는 그것이 가리키는 데이터.

구조 EventTriggerData다음에 정의됨명령/event_trigger.h:

typedef 구조체 EventTriggerData

    NodeTag 유형;
    const char *이벤트;      /* 이벤트 이름 */
    노드 *parsetree;  /* 구문 분석 트리 */
    const char *태그;        /* 명령 태그 */
 EventTriggerData;

여기서 구성원은 다음과 같이 정의됩니다:

유형

항상T_EventTriggerData.

이벤트

함수가 호출되는 이벤트를 설명합니다. 다음 중 하나입니다."ddl_command_start", "ddl_command_end", "sql_drop", "table_rewrite". 참조PostgreSQL : 문서 : 12 : 39.1. 이벤트 토토 캔 동작 개요이 사건의 의미에 대해.

파싱 트리

명령의 구문 분석 트리에 대한 포인터. 자세한 내용은 PostgreSQL 소스 코드를 확인하세요. 구문 분석 트리 구조는 예고 없이 변경될 수 있습니다.

태그

이벤트 트리거가 실행되는 이벤트와 연관된 명령 태그, 예를 들어"함수 생성".

이벤트 트리거 함수는 다음을 반환해야 합니다.NULL포인터 (아님SQL null 값, 즉 설정하지 않음isNull참).