이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 43.6. pl/와이즈 토토 트리거버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

39.6. pl/perl 트리거

pl/perl을 사용하여 무지개 토토 기능을 작성할 수 있습니다. 방아쇠에 함수, 해시 참조$ _td현재 트리거 이벤트에 대한 정보가 포함되어 있습니다.$ _td는 별도의 변수입니다 트리거의 호출에 대한 로컬 값. 의 필드$ _td해시 참조는 다음과 같습니다.

$ _td- new foo

NEW열의 값foo

$ _td- old foo

old열의 값foo

$ _td- name

무지개 토토 이름이

$ _td- event

무지개 토토 이벤트 :삽입, 업데이트, 삭제또는알 수없는

$ _td- when

방아쇠가 호출되었을 때 :, 이후또는알 수없는

$ _td- level

무지개 토토 레벨 :row, 진술또는알 수없는

$ _td- relid

무지개 토토가 발사 된 테이블의 OID

$ _td- table_name

방아쇠가 발사 된 테이블 이름

$ _td- relname

트리거가 발사 된 테이블의 이름. 이것은 있습니다 더 이상 사용되지 않았으며 향후 릴리스에서 제거 될 수 있습니다. 대신 $ _td- table_name을 사용하십시오.

$ _td- table_schema

테이블의 스키마 이름 무지개 토토가 발사되었습니다. is

$ _td- argc

무지개 토토 함수의 인수 수

@$ _ td- args

무지개 토토 함수의 인수. 존재하지 않음$ _td- argcis 0입니다.

트리거는 다음 중 하나를 반환 할 수 있습니다.

반환;

진술 실행

"skip"

진술을 실행하지 마십시오

"Modify"

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. = "(트리거로 수정)";
        "수정"을 반환합니다.  # 행을 수정하고 삽입/업데이트 명령을 실행하십시오
     또 다른 
        반품;           # 삽입/업데이트 명령을 실행합니다