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

38.6. 토토 꽁 머니 절차 PL/Tcl

토토 꽁 머니 절차는 PL/Tcl로 작성될 수 있습니다.PostgreSQL다음과 같은 절차가 필요합니다. 토토 꽁 머니로 호출하려면 함수로 선언해야 합니다. 인수 및 반환 유형토토 꽁 머니.

토토 꽁 머니 관리자의 정보가 다음으로 전달됩니다. 다음 변수의 프로시저 본문:

$TG_name

다음의 토토 꽁 머니 이름토토 꽁 머니 생성진술.

$TG_relid

토토 꽁 머니를 발생시킨 테이블의 개체 ID 호출할 프로시저입니다.

$TG_relatts

접두사가 붙은 테이블 열 이름의 Tcl 목록 빈 목록 요소. 따라서 목록에서 열 이름을 조회합니다. 와 함께Tcl'slsearch명령은 요소의 같은 방식으로 첫 번째 열의 경우 1로 시작하는 숫자 열에는 관례적으로 번호가 매겨져 있습니다.포스트그레SQL. (빈 목록 요소도 삭제된 열의 위치에 나타납니다. 열의 속성 번호 지정이 정확하도록 그들의 권리입니다.)

$TG_when

문자열이전또는이후토토 꽁 머니 유형에 따라 다름 전화해.

$TG_level

문자열ROW또는진술문토토 꽁 머니 유형에 따라 다름 전화해.

$TG_op

문자열삽입, 업데이트, 또는삭제토토 꽁 머니 호출 유형에 따라 다릅니다.

$NEW

새 값을 포함하는 연관 배열 에 대한 테이블 행삽입또는업데이트작업 또는 비어 있음삭제. 배열은 열 이름으로 인덱싱됩니다. null인 열은 배열에 표시되지 않습니다.

$OLD

이전 값을 포함하는 연관 배열 에 대한 테이블 행업데이트또는삭제작업 또는 비어 있음삽입. 배열은 열 이름으로 인덱싱됩니다. null인 열은 배열에 표시되지 않습니다.

$args

다음에 제공된 프로시저에 대한 인수의 Tcl 목록토토 꽁 머니 생성성명. 이러한 인수는 다음과 같이 액세스할 수도 있습니다.$1 ... $n프로시저 본문에서.

토토 꽁 머니 프로시저의 반환 값은 다음 중 하나일 수 있습니다. 문자열확인또는건너뛰기또는에서 반환된 목록배열 가져오기Tcl 명령. 반환 값이 다음과 같은 경우확인, 연산(삽입/업데이트/삭제14236_14288건너뛰기토토 꽁 머니 관리자에게 알립니다. 이 행에 대한 작업을 자동으로 억제합니다. 목록이 다음과 같은 경우 반환되면 PL/Tcl에게 수정된 행을 토토 꽁 머니에 반환하도록 지시합니다. 에 제공된 관리자 대신 삽입될 관리자입니다.$NEW. (이것은 작동합니다삽입그리고업데이트만.) 말할 필요도 없이 이 모든 것은 토토 꽁 머니가 실행될 때만 의미가 있습니다. 이다이전그리고에 대한 각 행; 그렇지 않으면 반환 값이 무시됩니다.

다음은 강제로 실행하는 토토 꽁 머니 절차의 작은 예입니다. 업데이트 횟수를 추적하기 위한 테이블의 정수 값 행에서 수행되는 것입니다. 새 행이 삽입된 경우 값 0으로 초기화된 다음 업데이트할 때마다 증가합니다. 작동합니다.

CREATE FUNCTION trigfunc_modcount() 토토 꽁 머니 AS '를 반환합니다.
    $TG_op 전환 
        삽입 
            신규 설정($1) 0

        업데이트 
            새로운 설정($1) $OLD($1)
            신규($1) 증가

        기본값 
            반품 확인

    반환 [배열 새로 가져오기]
' 언어 pltcl;

CREATE TABLE mytab(숫자 정수, 설명 텍스트, modcnt 정수);

mytab에 삽입하거나 업데이트하기 전에 토토 꽁 머니 trig_mytab_modcount를 생성하세요.
    각 행 실행 절차에 대해 trigfunc_modcount('modcnt');

토토 꽁 머니 절차 자체는 열 이름; 이는 토토 꽁 머니 인수에서 제공됩니다. 이 토토 꽁 머니 프로시저를 다른 테이블에서 재사용할 수 있습니다.