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