이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 결과 : 문서 : 17 : 37 장. 트리거버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

47 장. 토토 핫

Postgres다양한 클라이언트가 있습니다 Perl, TCL, Python 및 C와 같은 인터페이스 및 3절차 언어(pl). 그것은 또한 토토 핫 조치로 C 기능을 호출 할 수 있습니다. 주목하십시오 명령문 수준 토토 핫 이벤트는 현재에서 지원되지 않습니다 버전. 현재 삽입 전후에 지정할 수 있습니다. 토토 핫 이벤트로 튜플 삭제 또는 업데이트.

토토 핫 창조

토토 핫 이벤트가 발생하면 토토 핫 관리자 ( 집행자)는 글로벌 구조 TriggerData를 초기화합니다 *CurrentTriggerData (아래 설명) 및 토토 핫를 호출합니다 이벤트 처리 기능.

토토 핫 기능은 토토 핫가되기 전에 생성해야합니다. 인수를 취하지 않고 불투명 한 기능으로 생성됩니다.

토토 핫 생성을위한 구문은 다음과 같습니다.

토토 핫 만들기토토 핫[전 | 후] [삽입 | 삭제 | 업데이트 [또는 ...]]
    에관계FOR EACH [ ROW | 성명 ]
    절차 실행절차(args);
인수가있는 곳 :
토토 핫

삭제 해야하는 경우 토토 핫 이름이 사용됩니다. 방아쇠. 그것은에 대한 논쟁으로 사용됩니다.드롭 토토 핫명령.

전, 이후

함수가 전후에 호출되는지 여부를 결정합니다 이벤트.

삽입, 삭제, 업데이트

명령의 다음 요소는 어떤 이벤트를 결정합니다. 기능을 토토 핫합니다. 여러 이벤트를 지정할 수 있습니다 또는.에 의해 분리

관계

관계 이름은 이벤트가 적용되는 테이블을 결정합니다 에게.

행, 명령문

각 조항의 경우 토토 핫가 해고되었는지 여부가 결정됩니다. 영향을받는 각 행 또는 전 (또는 그 이후)에 대해 전체 명세서 완료되었습니다.

절차

프로 시저 이름은 C 호출 된 C 함수입니다.

args

인수는 그 기능으로 전달되었습니다 CurrentTriggerData 구조. 논쟁을 통과하는 목적 기능은 비슷한 토토 핫를 허용하는 것입니다. 동일한 기능을 호출 해야하는 요구 사항.

또한절차사용될 수 있습니다 다른 관계를 유발하기 위해 (이러한 기능은 이름이 지정됩니다 "일반 토토 핫 기능").

위의 두 기능을 사용하는 예는 인수로서 두 개의 필드 이름을 취하는 일반적인 기능 현재 사용자를 하나와 현재 타임 스탬프에 넣습니다. 다른 하나. 이를 통해 삽입 이벤트에서 토토 핫를 작성할 수 있습니다 거래에서 레코드 생성을 자동으로 추적합니다 예를 들어 테이블. "마지막 업데이트"로 사용될 수 있습니다. 업데이트 이벤트에서 사용되는 경우 기능.

토토 핫 기능을 호출 집행자에게 반환합니다. 이것 인서트, 삭제 또는 업데이트 후 발사 된 토토 핫에 대해 무시됩니다. 작동하지만 토토 핫 앞에 다음을 수행 할 수 있습니다.

  • 현재 튜플의 작업을 건너 뛰려 NULL을 반환합니다 (및 따라서 튜플은 삽입/업데이트/삭제되지 않습니다).

  • 다른 튜플에 포인터를 반환합니다 (삽입 및 업데이트 만 해당) 삽입됩니다 (업데이트 된 튜플의 새 버전으로 Update)) 원래 튜플 대신

생성에 의해 수행 된 초기화가 없음에 유의하십시오. 토토 핫 핸들러. 이것은 앞으로 변경 될 것입니다. 또한 더 많은 경우 동일한 이벤트에 대해 하나의 토토 핫가 동일한 이벤트에 대해 정의됩니다. 관계, 방아쇠 발사 순서는 예측할 수 없습니다. 이것은 될 수 있습니다 미래에 변경되었습니다.

토토 핫 함수가 SQL-Queries (SPI 사용)를 실행하는 경우 이 쿼리는 다시 토토 핫를 발사 할 수 있습니다. 이것은 계단식이라고합니다 토토 핫. 캐스케이드 수에는 명시적인 제한이 없습니다. 레벨.

토토 핫가 삽입하여 발사되고 새 튜플을 같은 관계는이 토토 핫가 다시 발사됩니다. 현재, 이 경우 동기화 (ETC)에 제공되는 것은 없습니다. 그러나 이것은 변할 수 있습니다. 현재 기능이 있습니다. funny_dup17 () 재귀를 막기 위해 일부 기술을 사용하는 회귀 테스트에서 (계단식) 그 자체 ...