| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : PL/사설 토토 사이트에서 데이터베이스 액세스 | PostgreSQL : 문서 : 9.3 : PL/메이저 토토 사이트 -메이저 토토 사이트 절차 언어 | 41장. PL/배트맨 토토 - 배트맨 토토 절차적 언어 | 토토 핫 : 문서 : 9.3 : 모듈과 알 수없는 명령 | |
트리거 절차는 PL/배트맨 토토로 작성될 수 있습니다.PostgreSQL다음과 같은 절차가 필요합니다. 트리거로 호출하려면 함수로 선언해야 합니다. 인수 및 반환 유형트리거.
트리거 관리자의 정보가 다음으로 전달됩니다. 다음 변수의 프로시저 본문:
다음의 트리거 이름만들기 트리거진술.
트리거 프로시저를 발생시킨 테이블의 개체 ID 호출됩니다.
트리거 프로시저를 발생시킨 테이블의 이름 호출되었습니다.
트리거 프로시저를 발생시킨 테이블의 스키마 호출되었습니다.
빈 접두사가 붙은 테이블 열 이름의 배트맨 토토 목록
목록 요소. 따라서 다음을 사용하여 목록에서 열 이름을 검색합니다.배트맨 토토의lsearch명령은 요소의 번호를 반환합니다.
첫 번째 열은 1부터 시작하며 열도 마찬가지입니다.
관례적으로 번호가 매겨져 있음포스트그레SQL. (빈 목록 요소도 나타납니다.
삭제된 열 위치에
오른쪽 열의 속성 번호 매기기가 정확합니다.)
문자열이전, 이후, 또는대신, 트리거 이벤트 유형에 따라 다릅니다.
문자열ROW또는진술문트리거 유형에 따라 다름 이벤트.
문자열삽입, 업데이트, 삭제또는잘라내기트리거 유형에 따라 다름 이벤트.
새 테이블 행의 값을 포함하는 연관 배열 에 대한삽입또는업데이트작업 또는 비어 있음삭제. 배열은 열 이름으로 인덱싱됩니다. 열 null은 배열에 나타나지 않습니다. 다음 항목으로 설정되지 않았습니다. 명령문 수준 트리거.
이전 테이블 행의 값을 포함하는 연관 배열 에 대한업데이트또는삭제작업 또는 비어 있음삽입. 배열은 열 이름으로 인덱싱됩니다. 열 null은 배열에 나타나지 않습니다. 다음 항목으로 설정되지 않았습니다. 명령문 수준 트리거.
다음에 주어진 절차에 대한 인수의 배트맨 토토 목록트리거 생성성명. 이러한 주장 다음과 같이 액세스할 수도 있습니다.$1 ... $n절차 중 몸.
트리거 프로시저의 반환 값은 다음 중 하나일 수 있습니다. 문자열확인또는건너뛰기또는 열 이름/값 쌍 목록입니다. 만약 반환 값은확인, 작업 (삽입/업데이트/삭제)이 실행되었습니다. 트리거는 정상적으로 진행됩니다.건너뛰기트리거 관리자에게 다음 작업을 자동으로 억제하도록 지시합니다. 이 행. 목록이 반환되면 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');
트리거 절차 자체는 열 이름; 이는 트리거 인수에서 제공됩니다. 이렇게 하면 트리거 프로시저는 다른 테이블에서 재사용됩니다.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 다음에서 데이터베이스 액세스 PL/배트맨 토토 | PostgreSQL : 문서 : 9.3 : PL/메이저 토토 사이트 -메이저 토토 사이트 절차 언어 | 모듈 및알 수 없음명령 |