2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 롤 토토 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 사설 토토 생성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

만들기 트리거

이름

트리거 생성  --  새 트리거 정의

시놉시스

트리거 생성이름이전 | 이후이벤트[또는 ...] 
    켜짐테이블각  행에 대해 | 진술 
    실행 절차펑크 ( 인수 )

입력

이름

새 트리거에 부여할 이름입니다. 이것은 동일한 작업에 대한 다른 트리거의 이름과 구별됩니다. 테이블.

이벤트

INSERT, DELETE 또는 UPDATE 중 하나입니다.

테이블

테이블의 이름(선택적으로 스키마 한정) 트리거는 다음을 위한 것입니다.

펑크

아니요를 취하는 것으로 선언된 사용자 제공 함수 인수 및 반환 유형트리거.

인수

선택적인 쉼표로 구분된 인수 목록입니다. 트리거가 실행될 때 함수에 제공되며, 기존 및 신규 등의 표준 트리거 데이터와 함께 튜플 내용. 인수는 리터럴 문자열입니다. 상수. 간단한 이름과 숫자 상수는 다음과 같습니다. 여기에도 기록되어 있지만 모두 다음으로 변환됩니다. 문자열.

출력

트리거 생성

트리거가 다음과 같은 경우 이 메시지가 반환됩니다. 성공적으로 생성되었습니다.

설명

트리거 생성새 항목을 입력합니다 현재 데이터베이스로 트리거합니다. 방아쇠는 관계와 연관됨테이블그리고 지정된 것을 실행합니다 기능펑크.

트리거는 다음 중 하나 이전에 실행되도록 지정할 수 있습니다. 튜플에 대한 작업이 시도되었습니다(제약조건을 확인하기 전에). 그리고삽입, 업데이트또는삭제이 시도됨) 또는 작업이 시도된 이후(예: 이후 제약 조건이 확인되고삽입, 업데이트또는삭제완료되었습니다). 트리거가 이전에 실행된 경우 이벤트가 발생한 경우 트리거는 현재 작업을 건너뛸 수 있습니다. 튜플을 삽입하거나 삽입되는 튜플을 변경합니다(for삽입그리고업데이트작업 전용). 이벤트 이후에 트리거가 실행되면 모든 마지막 삽입, 업데이트 또는 삭제를 포함한 변경 사항은 다음과 같습니다."표시"트리거에.

동일한 유형의 여러 트리거가 동일한 항목에 대해 정의된 경우 이벤트가 발생하면 이름의 알파벳 순서로 실행됩니다.

선택행을 수정하지 않으므로 당신은 만들 수 없습니다선택트리거. 이러한 경우에는 규칙과 보기가 더 적합합니다.

다음에서 SPI 및 트리거에 대한 장을 참조하세요.롤 토토 프로그래머 가이드더 보기 정보.

참고

테이블에 트리거를 생성하려면 사용자는 다음을 가지고 있어야 합니다.트리거테이블에 대한 권한입니다.

롤 토토이전 버전 7.3에서는 트리거 함수를 반환으로 선언해야 했습니다. 자리표시자 유형불투명, 대신트리거. 오래된 덤프 로딩을 지원하기 위해 파일,트리거 생성다음을 수락합니다 반환으로 선언된 함수불투명하지만 NOTICE를 발행하고 함수의 선언된 반환을 변경합니다. 에 입력하세요.트리거.

현재 릴리스 기준으로,진술문트리거가 구현되지 않았습니다.

참조PostgreSQL : 문서 : 7.3 : 스포츠 토토 결과 트리거제거 방법에 대한 정보를 위한 명령 트리거합니다.

지정된 배포자 코드가 다음 위치에 있는지 확인하십시오. distributions 테이블에 행을 추가하거나 업데이트하기 전에 테이블 영화:

트리거 생성 if_dist_exists
    각 행의 필름을 삽입하거나 업데이트하기 전
    실행 절차 check_primary_key ('did', 'distributors', 'did');

배포자를 취소하거나 코드를 업데이트하기 전에 제거하십시오. 테이블 영화에 대한 모든 참조:

트리거 생성 if_film_exists 
    각 행의 배포자를 삭제하거나 업데이트하기 전
    실행 절차 check_foreign_key (1, 'CASCADE', 'did', 'films', 'did');

두 번째 예는 외래 키를 사용하여 수행할 수도 있습니다. 다음과 같은 제약 조건:

테이블 배포자 생성(
    DECIMAL(3)을 수행했습니다.
    이름 VARCHAR(40),
    CONSTRAINT if_film_exists
    FOREIGN KEY(did) 참조 영화
    캐스케이드 업데이트 시 캐스케이드 삭제 시  
);

호환성

SQL92

없습니다트리거 생성문의 내용SQL92.

SQL99

트리거 생성문의 내용롤 토토구현 SQL99 표준의 하위 집합입니다. 다음 기능 누락되었습니다:

  • SQL99에서는 특정 항목에 대한 업데이트 시 트리거가 실행되도록 허용합니다. 열(예:업데이트 후 열1, 열2).

  • SQL99에서는 다음에 대한 별칭을 정의할 수 있습니다."오래된"그리고"새로운"다음에 사용할 행 또는 테이블 트리거된 작업의 정의(예:CREATE TRIGGER ... ON 테이블 이름 REFERENCING OLD ROW AS 다른 이름 NEW ROW AS 다른 이름 ...). 이후롤 토토트리거 절차를 원하는 수만큼 작성할 수 있습니다. 사용자 정의 언어 중 데이터에 대한 액세스는 언어별 방식으로 처리됩니다.

  • 포스트그레SQL만 있습니다 행 수준 트리거, 명령문 수준 트리거 없음.

  • 롤 토토만 저장 프로시저의 실행을 허용합니다. 행동을 촉발시켰습니다. SQL99는 다음의 실행을 허용합니다. 다음과 같은 다른 SQL 명령의 수테이블 생성트리거된 작업으로. 이 제한 사항은 이러한 명령을 실행하는 저장 프로시저입니다.

SQL99는 여러 트리거가 실행되어야 함을 지정합니다. 생성된 순서대로.롤 토토이름 순서를 사용합니다. 작업하기가 더 편리하다고 판단되었습니다.