pl/범퍼카 토토을 사용하여 트리거 기능을 작성할 수 있습니다. 트리거 함수에서 해시 참조$ _td
현재 트리거 이벤트에 대한 정보가 포함되어 있습니다.$ _td
는 글로벌 변수이며 트리거의 호출마다 별도의 로컬 값을 얻습니다. 의 필드$ _td
해시 참조는 다음과 같습니다.
$ _td- new foo
NEW
열의 가치foo
$ _td- old foo
old
열의 가치foo
$ _td- name
트리거 이름이
$ _td- event
트리거 이벤트 :삽입
, 업데이트
, 삭제
, Truncate
또는알 수없는
$ _td- when
방아쇠가 호출되었을 때 :전
, 이후
, 대신
또는알 수없는
$ _td- level
트리거 레벨 :row
, 성명서
또는알 수없는
$ _td- relid
트리거가 발사 된 테이블의 OID
$ _td- table_name
트리거가 발사 된 테이블의 이름
$ _td- relname
트리거가 발사 된 테이블의 이름. 이것은 더 이상 사용되지 않았으며 향후 릴리스에서 제거 될 수 있습니다. 대신 $ _td- table_name을 사용하십시오.
$ _td- table_schema
트리거가 발사 된 테이블의 스키마 이름은
$ _td- argc
트리거 함수의 인수 수
@$ _ td- args
트리거 함수의 인수. 존재하지 않음$ _td- argc
is 0입니다.
로드 레벨 트리거는 다음 중 하나를 반환 할 수 있습니다.
return;
작동 실행
"skip"
작동을 실행하지 마십시오
"수정"
NEW
트리거 함수에 의해 행이 수정되었습니다
위의 일부를 보여주는 트리거 함수의 예입니다.
테이블 테스트 생성 ( 나는 int, v varchar ); function valid_id ()를 작성하거나 바꾸십시오. 트리거를 $$로 반환합니다 if (($ _td- new i = 100) || ($ _td- new i <= 0)) "건너 뛰기"를 반환합니다. # 삽입/업데이트 명령을 건너 뜁니다 elsif ($ _td- new v ne "Inmortal") $ _td- new v. = "(트리거로 수정)"; "수정"을 반환합니다. # 행을 수정하고 삽입/업데이트 명령을 실행하십시오 또 다른 반품; # 삽입/업데이트 명령을 실행합니다
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면