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

21 장. 사설 토토

Postgres다양한 것이 있습니다 서버 측 기능 인터페이스. 서버 측 기능 일 수 있습니다 SQL, PLPGSQL, TCL 또는 C로 작성된 사설 토토 기능은 다음과 같습니다. SQL을 제외한 이러한 언어로 작성되었습니다. 주목하십시오 명령문 수준 사설 토토 이벤트는 현재에서 지원되지 않습니다 버전. 현재 삽입 전후에 지정할 수 있습니다. 사설 토토 이벤트로 튜플 삭제 또는 업데이트.

21.1. 사설 토토 생성

사설 토토 이벤트가 발생하면 사설 토토 관리자 ( 집행자)는 TriggerData 정보 구조를 설정합니다 (아래 설명) 및 사설 토토 기능을 호출하여 처리합니다. 이벤트.

사설 토토 기능은 사설 토토가되기 전에 생성해야합니다. 인수를 취하지 않고 불투명 한 반환 기능으로 생성됩니다. 함수가 C로 작성된 경우 "버전 1"을 사용해야합니다. 기능 관리자 인터페이스.

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

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

트리거의 이름이 필요한 경우 사용됩니다. 사설 토토를 삭제하십시오. 그것은에 대한 논쟁으로 사용됩니다.드롭 사설 토토명령.

전, 이후

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

삽입, 삭제, 업데이트

명령의 다음 요소는 무엇을 결정합니다 이벤트는 기능을 사설 토토합니다. 여러 이벤트가 가능합니다 OR에 의해 분리되어 지정됩니다.

관계

관계 이름은 이벤트의 테이블을 결정합니다 적용.

행, 명령문

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

절차

절차 이름은 호출 된 함수입니다.

args

인수는 그 기능으로 전달되었습니다 사설 토토 데이터 구조. 논쟁을 통과하는 목적 기능은 다른 사설 토토를 허용하는 것입니다 동일한 기능을 호출하는 유사한 요구 사항.

또한절차다른 관계를 유발하는 데 사용됩니다 (이 기능 "일반 사설 토토 함수").).

위의 두 기능을 모두 사용하는 예로서, 그럴 수 있습니다 인수 2로 취하는 일반적인 기능이 되십시오. 필드 이름을 지정하고 현재 사용자를 하나로 묶습니다. 다른 타임 스탬프. 이것은 사설 토토를 허용합니다 자동으로 추적하려면 삽입 이벤트에 작성하십시오 예를 들어 트랜잭션 테이블에서 레코드 생성. "마지막 업데이트 된"기능으로도 사용할 수 있습니다. 업데이트 이벤트에서 사용됩니다.

사설 토토 함수는 호출 집행자에게 반환됩니다. 이것은 인서트, 삭제 또는 업데이트 작업이지만 사설 토토 이전에는 다음을 수행 할 수 있습니다.

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

  • 다른 튜플에 포인터를 반환합니다 (삽입 및 업데이트 삽입 될 (새로운 버전의 원래 튜플 대신 업데이트 IF 업데이트) 업데이트.

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

사설 토토 함수가 SQL-Queries (SPI 사용)를 실행하는 경우 이 쿼리는 다시 사설 토토를 발사 할 수 있습니다. 이것은 알려져 있습니다 계단식 사설 토토. 에 대한 명시 적 제한은 없습니다 캐스케이드 수준의 수.

삽입하여 사설 토토를 발사하고 새 튜플을 삽입하는 경우 동일한 관계는이 사설 토토가 다시 발사됩니다. 현재 동기화 (etc)에 제공되는 것은 없습니다. 이 경우에도 변경 될 수 있습니다. 현재, 그 순간이 있습니다 기능을 사용하는 회귀 테스트에서 funny_dup17 () 함수 재귀를 멈추는 기술 (계단식) 자체 ...