토토 결과 기능은 PL/Tcl로 작성될 수 있습니다.포스트그레SQL토토 결과로 호출될 함수는 인수가 없고 반환 유형이 다음과 같은 함수로 선언되어야 합니다.토토 결과.
토토 결과 관리자의 정보는 다음 변수를 통해 함수 본문에 전달됩니다.
$TG_name토토 결과의 이름토토 결과 생성진술.
$TG_relid토토 결과 함수를 호출한 테이블의 개체 ID.
$TG_table_name토토 결과 함수를 호출한 테이블의 이름.
$TG_table_schema토토 결과 함수가 호출되도록 만든 테이블의 스키마.
$TG_relatts빈 목록 요소가 앞에 붙은 테이블 열 이름의 Tcl 목록입니다. 따라서 다음을 사용하여 목록에서 열 이름을 검색합니다.Tcl'slsearch명령은 관례적으로 열에 번호를 매기는 방식과 마찬가지로 첫 번째 열에 대해 1부터 시작하는 요소 번호를 반환합니다.포스트그레SQL. (빈 목록 요소는 삭제된 열 위치에도 나타나므로 오른쪽 열의 속성 번호 매기기가 정확합니다.)
$TG_when문자열이전, 이후또는대신, 토토 결과 이벤트 유형에 따라 다름.
$TG_level문자열ROW또는진술문토토 결과 이벤트 유형에 따라 다릅니다.
$TG_op문자열삽입, 업데이트, 삭제또는잘라내기토토 결과 이벤트 유형에 따라 다릅니다.
$NEW새 테이블 행의 값을 포함하는 연관 배열삽입또는업데이트작업 또는 비어 있음삭제. 배열은 열 이름으로 인덱싱됩니다. null인 열은 배열에 표시되지 않습니다. 명령문 수준 토토 결과에는 설정되지 않습니다.
$OLD에 대한 이전 테이블 행의 값을 포함하는 연관 배열업데이트또는삭제작업 또는 비어 있음삽입. 배열은 열 이름으로 인덱싱됩니다. null인 열은 배열에 표시되지 않습니다. 명령문 수준 토토 결과에는 설정되지 않습니다.
$args다음에 주어진 함수에 대한 인수의 Tcl 목록토토 결과 생성문장. 이러한 인수는 다음과 같이 액세스할 수도 있습니다.$1 ... $함수 본문에서.n
토토 결과 함수의 반환 값은 문자열 중 하나일 수 있습니다.확인또는건너뛰기또는 열 이름/값 쌍 목록입니다. 반환 값이 다음과 같은 경우확인, 연산(삽입/업데이트/삭제15179_15229건너뛰기토토 결과 관리자에게 이 행에 대한 작업을 자동으로 억제하도록 지시합니다. 목록이 반환되면 PL/Tcl에게 수정된 행을 토토 결과 관리자에게 반환하도록 지시합니다. 수정된 행의 내용은 목록의 열 이름과 값으로 지정됩니다. 목록에 언급되지 않은 모든 열은 null로 설정됩니다. 수정된 행 반환은 행 수준에서만 의미가 있습니다.이전 삽입또는업데이트토토 결과, 여기에 제공된 행 대신 수정된 행이 삽입됩니다.$NEW; 또는 행 수준의 경우대신 삽입또는업데이트반환된 행이 소스 데이터로 사용되는 토토 결과반환 삽입또는업데이트 반환 중절. 행 수준에서이전 삭제또는대신 삭제토토 결과, 수정된 행 반환은 반환과 동일한 효과가 있습니다.확인즉, 작업이 진행됩니다. 다른 모든 유형의 토토 결과에서는 토토 결과 반환 값이 무시됩니다.
결과 목록은 다음을 사용하여 수정된 튜플의 배열 표현으로 만들 수 있습니다.배열 가져오기Tcl 명령입니다.
다음은 행에서 수행되는 업데이트 수를 추적하기 위해 테이블의 정수 값을 강제로 적용하는 토토 결과 함수의 간단한 예입니다. 새 행이 삽입되면 값은 0으로 초기화된 다음 모든 업데이트 작업에서 증가됩니다.
CREATE FUNCTION trigfunc_modcount() $$로 토토 결과를 반환합니다.
    $TG_op 전환 
        삽입 
            신규 설정($1) 0
        업데이트 
            새로운 설정($1) $OLD($1)
            신규($1) 증가
        기본 
            반품 확인
    반환 [배열 새로 가져오기]
$$ 언어 pltcl;
CREATE TABLE mytab(숫자 정수, 설명 텍스트, modcnt 정수);
mytab에 삽입하거나 업데이트하기 전에 토토 결과 trig_mytab_modcount를 생성하세요.
    각 행에 대해 함수 실행 trigfunc_modcount('modcnt');
  토토 결과 기능 자체는 열 이름을 알지 못합니다. 이는 토토 결과 인수에서 제공됩니다. 이렇게 하면 토토 결과 함수를 다른 테이블에서 재사용할 수 있습니다.