Postgres다양한 클라이언트가 있습니다 Perl, TCL, Python 및 C와 같은 인터페이스 및 2절차 언어(pl). 그것은 또한 윈 토토 조치로 C 기능을 호출 할 수 있습니다. 주목하십시오 명령문 수준 윈 토토 이벤트는 현재에서 지원되지 않습니다 버전. 현재 삽입 전후에 지정할 수 있습니다. 윈 토토 이벤트로 튜플 삭제 또는 업데이트.
윈 토토 이벤트가 발생하면 윈 토토 관리자 ( 집행자)는 글로벌 구조 TriggerData를 초기화합니다 *CurrentTriggerData (아래 설명) 및 윈 토토를 호출합니다 이벤트 처리 기능.
윈 토토 기능은 윈 토토가되기 전에 생성해야합니다. 인수를 취하지 않고 불투명 한 기능으로 생성됩니다.
윈 토토 생성을위한 구문은 다음과 같습니다.
트리거 작성 <트리거 이름 <이전 | 후 <삽입 | 삭제 | 업데이트 각각의 <row | statement에 대한 <관계 이름 절차 실행 <절차 이름 (<function args);
윈 토토 이름은 삭제 해야하는 경우 사용됩니다. 방아쇠. 드롭 윈 토토 명령에 대한 인수로 사용됩니다.
다음 단어는 기능이 이전에 호출되었는지 여부를 결정합니다. 또는 이벤트 후.
명령의 다음 요소는 어떤 이벤트를 결정합니다. 기능을 트리거하십시오. 여러 이벤트를 지정할 수 있습니다 또는.
관계 이름은 이벤트가 적용되는 테이블을 결정합니다 에게.
각 진술의 경우 윈 토토가 발사되었는지 여부가 결정됩니다. 영향을받는 각 행 또는 전 (또는 그 이후)에 대해 전체 진술은 완전한.
프로 시저 이름은 C 호출 된 C 함수입니다.
args는 currentTriggerData의 함수로 전달됩니다. 구조. 기능에 인수를 전달하는 목적은 비슷한 요구 사항을 가진 다른 윈 토토를 허용하여 동일하게 호출하십시오. 기능.
또한 다른 관계를 유발하는 데 기능이 사용될 수 있습니다 (이 기능은 "일반 윈 토토 기능"으로 명명 됨).
위의 두 기능을 사용하는 예는 인수로서 두 개의 필드 이름과 현재 사용자를 하나로 그리고 현재 타임 스탬프를 다른. 이를 통해 윈 토토 삽입 이벤트에서 윈 토토를 작성할 수 있습니다. 거래 테이블에서 레코드 생성을 자동으로 추적합니다. 예. 사용하는 경우 "마지막 업데이트 된"기능으로 사용될 수도 있습니다. 업데이트 이벤트에서.
윈 토토 함수는 호출 집행자에게 반환됩니다. 이것 인서트, 삭제 또는 업데이트 후 발사 된 윈 토토에 대해 무시됩니다. 작동하지만 윈 토토 앞에 : - 리턴 NULL을 건너 뛸 수 있습니다. 현재 튜플 작업 (그리고 튜플은 삽입/업데이트/삭제); - 다른 튜플로 포인터를 반환하십시오 (삽입 및 업데이트 만) 삽입 될 (새 버전으로 업데이트 된 튜플의 업데이트) 원래 튜플 대신
작성에 의해 수행 된 초기화가 없음. 윈 토토 핸들러. 이것은 앞으로 변경 될 것입니다. 또한 더 많은 경우 동일한 이벤트에 대해 하나의 윈 토토가 동일한 이벤트에 대해 정의됩니다. 관계, 방아쇠 발사 순서는 예측할 수 없습니다. 이것은 될 수 있습니다 미래에 변경되었습니다.
윈 토토 함수가 SQL-Queries (SPI 사용)를 실행하는 경우 이 쿼리는 다시 윈 토토를 발사 할 수 있습니다. 이것은 계단식이라고합니다 윈 토토. 캐스케이드 수에는 명시적인 제한이 없습니다. 레벨.
윈 토토가 삽입하여 발사되고 새 튜플을 같은 관계는이 윈 토토가 다시 발사됩니다. 현재, 이 경우 동기화 (ETC)에 제공되는 것은 없습니다. 그러나 이것은 변할 수 있습니다. 현재 기능이 있습니다. funny_dup17 () 재귀를 막기 위해 일부 기술을 사용하는 회귀 테스트에서 (계단식) 그 자체 ...