이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 43.6. pl/와이즈 토토 트리거버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

37.6. 와이즈 토토/Perl 트리거

와이즈 토토/Perl을 사용하여 트리거 기능을 작성할 수 있습니다. 트리거에서 함수, 해시 참조$_TD현재 트리거 이벤트에 대한 정보가 포함되어 있습니다. 필드 의$_TD해시 참조는 다음과 같습니다.

$_TD-신규foo

신규열의 값foo

$_TD-oldfoo

오래된열 값foo

$_TD-이름

호출되는 트리거의 이름

$_TD-이벤트

트리거 이벤트:삽입, 업데이트, 삭제, 또는알 수 없음

$_TD-언제

트리거가 호출되었을 때:이전, 이후또는알 수 없음

$_TD-레벨

트리거 레벨:ROW, 진술문또는알 수 없음

$_TD-렐리드

트리거가 실행된 테이블의 OID

$_TD-relname

트리거가 실행된 테이블의 이름

$_TD-argc

트리거 함수의 인수 수

@$_TD-args

트리거 기능의 인수. 다음과 같은 경우 존재하지 않습니다. $_TD-argc는 0입니다.

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

반환;

문장 실행

"건너뛰기"

문을 실행하지 마십시오

"수정"

다음을 나타냅니다.신규행은 다음과 같습니다. 트리거 기능에 의해 수정됨

다음은 트리거 기능의 예입니다. 위:

테이블 생성 테스트(
    나는 int,
    v varchar
);

생성 또는 교체 함수 valid_id()는 $$로 트리거를 반환합니다.
    if (($_TD-newi = 100) || ($_TD-newi <= 0)) 
        "건너뛰기"를 반환합니다.    # INSERT/UPDATE 명령을 건너뜁니다.
     elsif ($_TD-newv ne "불멸") 
        $_TD-newv .= "(트리거에 의해 수정됨)";
        "수정"을 반환합니다.  # 행을 수정하고 INSERT/UPDATE 명령을 실행합니다.
     그렇지 않으면 
        반환;           # INSERT/UPDATE 명령을 실행합니다.