와이즈 토토 절차는 pl/tcl에서 작성할 수 있습니다.postgresql그 절차가 필요합니다 와이즈 토토라고 불리는 것은 인수 및 반환 유형와이즈 토토.
와이즈 토토 관리자의 정보가 전달됩니다. 다음 변수의 절차 본문 :
와이즈 토토 만들기진술.
와이즈 토토를 일으킨 테이블의 객체 ID 호출 절차.
테이블 열 이름의 tcl 목록,
빈 목록 요소. 목록에서 열 이름을 찾습니다
와 함께tcl'slsearch
명령은 요소를 반환합니다
첫 번째 열의 1로 시작하는 숫자는 같은 방식으로
열은 관례 적으로 번호가 매겨집니다postgresql. (빈 목록 요소도
삭제 된 열의 위치에 나타납니다.
속성 번호 매기기가 열에 맞도록
그들의 권리.)
문자열전또는이후와이즈 토토 유형에 따라 부르다.
문자열Row또는진술와이즈 토토 유형에 따라 부르다.
문자열삽입, 업데이트또는삭제와이즈 토토 호출 유형에 따라
새로운 값을 포함하는 연관 배열 테이블 행삽입또는업데이트행동 또는 비어삭제. 배열은 열 이름으로 색인됩니다. NULL 인 열은 배열에 나타나지 않습니다.
오래된 값을 포함하는 연관 배열 테이블 행업데이트또는삭제동작 또는 비어삽입. 배열은 열 이름으로 색인됩니다. NULL 인 열은 배열에 나타나지 않습니다.
그만큼와이즈 토토 만들기진술. 이러한 주장은 또한로 액세스 할 수 있습니다.$ 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');
와이즈 토토 절차 자체가 열 이름; 그것은 와이즈 토토 인수에서 제공됩니다. 이것 와이즈 토토 절차를 다른 테이블과 함께 재사용 할 수 있습니다.