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