Postgresql 9.2.24 문서 | ||||
---|---|---|---|---|
스포츠 토토 베트맨 : 문서 : 9.2 : PL/스포츠 토토 베트맨에서 데이터베이스 액세스 | up | 40 장. pl/사설 토토 -사설 토토 절차 언어 | 스포츠 토토 결과 : 문서 : 9.2 : 모듈과 알 수없는 명령 |
트리거 절차는 pl/사설 토토에서 작성할 수 있습니다.PostgreSQL그 절차가 필요합니다 트리거라고 불리는 것은 인수 및 반환 유형트리거.
트리거 관리자의 정보가 전달됩니다. 다음 변수의 절차 본문 :
트리거 만들기진술.
트리거를 일으킨 테이블의 객체 ID 호출 절차.
트리거 절차를 일으킨 테이블 이름 불러야한다.
트리거를 일으킨 테이블의 스키마 호출 절차.
테이블 열 이름의 사설 토토 목록,
빈 목록 요소. 목록에서 열 이름을 찾습니다
와 함께사설 토토'slsearch
명령은 요소를 반환합니다
첫 번째 열의 1로 시작하는 숫자는 같은 방식으로
열은 관례 적으로 번호가 매겨집니다postgresql. (빈 목록 요소도
삭제 된 열의 위치에 나타납니다.
속성 번호 매기기가 열에 맞도록
그들의 권리.)
문자열전, 이후또는대신 의12443_12486
문자열Row또는진술트리거 유형에 따라 이벤트.
문자열삽입, 업데이트, 삭제또는Truncate유형에 따라 트리거 이벤트.
새로운 값을 포함하는 연관 배열 테이블 행삽입또는업데이트동작 또는 비어삭제. 배열은 열 이름으로 색인됩니다. 널 인 열은 배열에 나타나지 않습니다. 이것은 명세서 수준 트리거로 설정되지 않습니다.
오래된 값을 포함하는 연관 배열 테이블 행업데이트또는삭제동작 또는 비어삽입. 배열은 열 이름으로 색인됩니다. 널 인 열은 배열에 나타나지 않습니다. 이것은 명세서 수준 트리거로 설정되지 않습니다.
그만큼트리거 만들기진술. 이러한 주장은 또한로 액세스 할 수 있습니다.$ 1 ... $n절차 기관에서.
트리거 절차의 리턴 값은 문자열OK또는skip또는 열 이름/값 쌍의 목록. 만약 반환 값은OK, 작업 (삽입/업데이트/삭제) 해고 방아쇠가 정상적으로 진행됩니다.skip트리거 관리자에게 조작을 조용히 억제하도록 지시합니다. 이 행. 목록이 반환되면 PL/사설 토토에 반환하도록 지시합니다. 트리거 관리자에게 수정 된 행; 수정 된 내용 행은 목록의 열 이름과 값으로 지정됩니다. 어느 목록에 언급되지 않은 열은 null로 설정됩니다. 반환 a 수정 된 행은 행 수준에만 의미가 있습니다전 삽입또는업데이트수정 된 트리거 행에 주어진 것 대신 행이 삽입됩니다$ new; 또는 줄 수준대신 의 삽입또는업데이트반환 된 행이 사용되는 위치를 트리거합니다 에 대한 소스 데이터리턴 삽입또는업데이트 반환조항. 로드 레벨전 삭제또는대신 삭제트리거, 수정 된 행을 반환하면 반환과 동일한 효과OK작동이 진행됩니다. 트리거 리턴 값은 모두에 대해 무시됩니다 다른 유형의 트리거.
팁 :결과 목록은 배열에서 만들 수 있습니다 수정 된 튜플의 표현배열 get사설 토토 명령.
여기에 작은 예제 트리거 절차가 있습니다 업데이트 수를 추적하기 위해 테이블의 정수 값 행에서 수행됩니다. 새 행이 삽입 된 경우 값이 있습니다 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');
트리거 절차 자체가 열 이름; 그것은 트리거 인수에서 제공됩니다. 이것 트리거 절차를 다른 테이블과 함께 재사용 할 수 있습니다.