이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 42.6. PL/토토 베이에서의 와이즈 토토 기능버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

37.6. 와이즈 토토 절차 pl/tcl

와이즈 토토 절차는 pl/tcl에서 작성할 수 있습니다.postgresql그 절차가 필요합니다 와이즈 토토라고 불리는 것은 인수 및 반환 유형와이즈 토토.

와이즈 토토 관리자의 정보가 전달됩니다. 다음 변수의 절차 본문 :

$ tg_name

와이즈 토토 만들기진술.

$ tg_relid

와이즈 토토를 일으킨 테이블의 객체 ID 호출 절차.

$ tg_relatts

테이블 열 이름의 tcl 목록, 빈 목록 요소. 목록에서 열 이름을 찾습니다 와 함께tcl'slsearch명령은 요소를 반환합니다 첫 번째 열의 1로 시작하는 숫자는 같은 방식으로 열은 관례 적으로 번호가 매겨집니다postgresql. (빈 목록 요소도 삭제 된 열의 위치에 나타납니다. 속성 번호 매기기가 열에 맞도록 그들의 권리.)

$ tg_when

문자열또는이후와이즈 토토 유형에 따라 부르다.

$ tg_level

문자열Row또는진술와이즈 토토 유형에 따라 부르다.

$ tg_op

문자열삽입, 업데이트또는삭제와이즈 토토 호출 유형에 따라

$ new

새로운 값을 포함하는 연관 배열 테이블 행삽입또는업데이트행동 또는 비어삭제. 배열은 열 이름으로 색인됩니다. NULL 인 열은 배열에 나타나지 않습니다.

$ old

오래된 값을 포함하는 연관 배열 테이블 행업데이트또는삭제동작 또는 비어삽입. 배열은 열 이름으로 색인됩니다. NULL 인 열은 배열에 나타나지 않습니다.

$ args

그만큼와이즈 토토 만들기진술. 이러한 주장은 또한로 액세스 할 수 있습니다.$ 1 ... $n절차 기관에서.

와이즈 토토 프로 시저의 리턴 값은 문자열OK또는건너 뛰기또는에 의해 반환 된 목록배열 gettcl 명령. 반환 값이 인 경우OK, 작동 (삽입/업데이트/삭제) 발사 된 방아쇠가 진행됩니다 보통.건너 뛰기와이즈 토토 관리자에게 알려줍니다 이 행의 조작을 조용히 억제합니다. 목록이있는 경우 반품, PL/TCL에 수정 된 행을 와이즈 토토로 반환하도록 지시합니다. 대신 삽입 될 관리자$ new. (이것은 작동삽입and업데이트만.) 말할 것도 없이이 모든 것이 방아쇠가 될 때만 의미가 있습니다. 이다and각 행; 그렇지 않으면 반환 값이 무시됩니다.

여기에 작은 예제 와이즈 토토 절차가 있습니다 업데이트 수를 추적하기 위해 테이블의 정수 값 행에서 수행됩니다. 새 행이 삽입 된 경우 값이 있습니다 0으로 초기화 한 다음 모든 업데이트에서 증가합니다. 작업.

함수 작성 trigfunc_modcount () 와이즈 토토를 $$로 반환합니다
    스위치 $ tg_op 
        삽입 
            새 ($ 1) 0을 설정하십시오

        업데이트 
            새로 설정 ($ 1) $ old ($ 1)
            새로운 새로운 ($ 1)

        기본 
            OK를 반환합니다

    반환 [배열이 새로워지기]
$$ 언어 pltcl;

테이블 마이 타브 생성 (Num Integer, Description Text, Modcnt Integer);

mytab에 삽입하거나 업데이트하기 전에 trigger trig_mytab_modcount를 만듭니다
    각 행마다 실행 절차 trigfunc_modcount ( 'modcnt');

와이즈 토토 절차 자체가 열 이름; 그것은 와이즈 토토 인수에서 제공됩니다. 이것 와이즈 토토 절차를 다른 테이블과 함께 재사용 할 수 있습니다.