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

만들기 방아쇠

이름

배트맨 토토 생성 -- 새 배트맨 토토 정의

시놉시스

[ 제약조건 ] 배트맨 토토 생성이름이전 | 이후 |   대신이벤트[ 또는 ... ] 
    에테이블_이름[ 보낸 사람referenced_table_name]
    [ 연기할 수 없음 | [ 연기 가능 ]  처음에는 즉시 | 처음에는 연기됨  ]
    [ [ 각각 ] 에 대해 ]  행 | 성명  ]
    [ 언제 (조건) ]
    실행 절차함수_이름 ( 인수 )

어디에서이벤트다음 중 하나일 수 있습니다.삽입
    업데이트 [ OF열_이름[, ... ] ]
    삭제
    자르기

설명

배트맨 토토 생성새 배트맨 토토를 생성합니다. 배트맨 토토는 지정된 테이블 또는 뷰와 연결됩니다. 그리고 지정된 기능을 실행합니다함수_이름특정 이벤트가 발생하면 발생하다.

작업이 완료되기 전에 배트맨 토토가 실행되도록 지정할 수 있습니다. 행에서 시도되었습니다(제약조건을 확인하기 전 및삽입, 업데이트, 또는삭제시도됨); 또는 그 이후 작업이 완료되었습니다(제약조건을 확인한 후삽입, 업데이트, 또는삭제완료); 아니면 대신에 작업(삽입, 업데이트 또는 삭제의 경우) 보다). 배트맨 토토가 이벤트 이전이나 이벤트 대신에 실행되는 경우 배트맨 토토는 현재 행에 대한 작업을 건너뛰거나 변경할 수 있습니다. 삽입되는 행(for삽입그리고업데이트작업 전용). 방아쇠를 당기는 경우 이벤트 이후의 화재, 효과를 포함한 모든 변경 사항 다른 배트맨 토토는 다음과 같습니다."표시됨"에 방아쇠.

표시된 배트맨 토토각 행에 대해작업이 수정되는 모든 행에 대해 한 번씩 호출됩니다. 을 위한 예를 들어, a삭제10개 행에 영향을 미침 어떤 원인이 될 것입니다삭제 중에 대한 배트맨 토토 대상 관계는 각각 한 번씩, 10번 호출됩니다. 삭제된 행. 대조적으로, 다음과 같이 표시된 배트맨 토토는각 문에 대해어떤 경우든 한 번만 실행됩니다. 수정되는 행 수에 관계없이 주어진 작업( 특히, 0개 행을 수정하는 작업은 여전히 해당하는 모든 조치가 실행됩니다.에 대한 각 진술배트맨 토토).

발동하도록 지정된 배트맨 토토대신배트맨 토토 이벤트가 표시되어야 합니다각 행에 대해, 다음에서만 정의할 수 있습니다. 조회수.이전그리고이후뷰의 배트맨 토토는 다음으로 표시되어야 합니다.각 문에 대해.

또한 다음을 위해 실행되도록 배트맨 토토를 정의할 수 있습니다.잘라내기하지만 오직각각 성명.

다음 표에는 어떤 유형의 배트맨 토토가 포함될 수 있는지 요약되어 있습니다. 테이블과 뷰에 사용됩니다:

언제 이벤트 행 수준 명령문 수준
이전 삽입/업데이트/삭제 테이블 테이블 및 보기
잘라내기 테이블
이후 삽입/업데이트/삭제 테이블 테이블 및 보기
잘라내기 테이블
대신 삽입/업데이트/삭제 조회수
잘라내기

또한 배트맨 토토 정의는 부울을 지정할 수 있습니다.언제조건을 확인하기 위해 테스트됩니다. 방아쇠를 발사해야 하는지 여부. 행 수준에서 배트맨 토토는언제조건은 이전을 검사할 수 있습니다. 및/또는 행 열의 새 값. 명령문 수준 배트맨 토토 또한 가질 수 있습니다언제조건이지만 조건이 불가능하기 때문에 이 기능은 그들에게 그다지 유용하지 않습니다. 표의 값을 참조하세요.

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

제약옵션은 지정하면 이 명령은제약 방아쇠. 이는 일반 배트맨 토토와 동일하지만 배트맨 토토 실행 타이밍은 다음을 사용하여 조정할 수 있습니다.제약조건 설정. 강제 배트맨 토토는 다음과 같아야 합니다.행 이후배트맨 토토. 그들은 진술이 끝날 때 해고될 수 있습니다. 이벤트를 배트맨 토토하거나 포함된 트랜잭션이 끝날 때 ~에 후자의 경우라고 합니다.지연. 보류 중인 지연 배트맨 토토 실행은 다음과 같습니다. 또한 다음을 사용하여 즉시 발생하도록 강제됩니다.제약조건 설정. 제약조건 배트맨 토토가 예상됩니다. 구현한 제약 조건이 다음과 같을 때 예외를 발생시킵니다. 위반했습니다.

선택행을 수정하지 않으므로 당신은 만들 수 없습니다선택배트맨 토토. 규칙 그러한 경우에는 뷰가 더 적합합니다.

참조503 토토 사이트 페치 실패더 보기 배트맨 토토에 대한 정보입니다.

매개변수

이름

새 배트맨 토토에 부여할 이름입니다. 이는 구별되어야 합니다. 동일한 테이블에 대한 다른 배트맨 토토의 이름에서 가져온 것입니다. 그만큼 이름은 스키마에 한정될 수 없습니다. 배트맨 토토는 해당 테이블의 스키마. 제약 조건 배트맨 토토의 경우 이는 또한 다음을 사용하여 배트맨 토토의 동작을 수정할 때 사용할 이름입니다.제약조건 설정.

이전
이후
대신

함수가 호출되기 전, 후에 호출되는지 결정합니다. 아니면 이벤트 대신. 제약 조건 배트맨 토토는 다음과 같습니다. 다음과 같이 지정됨이후.

이벤트

다음 중 하나삽입, 업데이트, 삭제, 또는잘라내기; 이것은 이벤트를 지정합니다 그러면 방아쇠가 발사됩니다. 여러 이벤트가 가능합니다. 다음을 사용하여 지정됨또는.

업데이트이벤트입니다. 이것을 사용하여 열 목록을 지정할 수 있습니다 통사론:

업데이트열_이름1 [, column_name2 ... ]

배트맨 토토는 나열된 것 중 적어도 하나가 있는 경우에만 실행됩니다. 열이의 대상으로 언급됩니다.업데이트명령.

업데이트 대신이벤트는 그렇지 않습니다. 열 목록을 지원합니다.

테이블_이름

테이블의 이름(선택적으로 스키마 한정) 또는 배트맨 토토의 목적을 확인하세요.

referenced_table_name

다른 테이블의 (아마도 스키마로 한정된) 이름 제약조건에 의해 참조됩니다. 이 옵션은 다음에 사용됩니다. 외래 키 제약 조건이 있으므로 일반적인 경우에는 권장되지 않습니다. 사용. 제약조건에 대해서만 지정할 수 있습니다. 배트맨 토토합니다.

지연 가능
지연할 수 없음
처음에는 즉시
처음에는 연기됨

배트맨 토토의 기본 타이밍입니다. 참조테이블 생성문서 이러한 제약 조건 옵션에 대한 세부정보입니다. 이것은 단지 제약 조건 배트맨 토토에 대해 지정되었습니다.

각 행에 대해
각 진술에 대해

이것은 배트맨 토토 절차가 다음과 같아야 하는지 여부를 지정합니다. 배트맨 토토 이벤트의 영향을 받은 모든 행에 대해 한 번 실행됩니다. SQL 문당 한 번만. 둘 다 지정되지 않은 경우,각 명령문에 대해기본값입니다. 제약 조건 배트맨 토토만 지정할 수 있습니다.각 행에 대해.

조건

배트맨 토토 여부를 결정하는 부울 표현식 함수가 실제로 실행됩니다. 만약에언제이 지정되면 함수는 다음과 같습니다. 다음과 같은 경우 호출됩니다.조건반환. 안에각 행에 대해배트맨 토토,언제조건은 다음의 열을 참조할 수 있습니다. 다음을 작성하여 이전 및/또는 새 행 값이전.컬럼_이름또는새로운.컬럼_이름각각. 의 강의,삽입배트맨 토토는 할 수 없습니다 참조오래된그리고삭제배트맨 토토는 참조할 수 없습니다.신규.

대신배트맨 토토는 그렇지 않습니다 지원하다언제조건.

현재,언제표현 하위 쿼리를 포함할 수 없습니다.

제약 조건 배트맨 토토의 경우 다음 평가에 유의하세요.언제조건이 연기되지 않았습니다. 그러나 행 업데이트 작업이 완료된 직후에 발생합니다. 수행. 조건이 true로 평가되지 않으면 배트맨 토토는 지연된 실행을 위해 대기열에 추가되지 않습니다.

함수_이름

아니요를 취하는 것으로 선언된 사용자 제공 함수 인수 및 반환 유형배트맨 토토, 배트맨 토토가 실행될 때 실행됩니다. 화재.

인수

선택적인 쉼표로 구분된 인수 목록입니다. 배트맨 토토가 실행될 때 함수에 제공됩니다. 그만큼 인수는 리터럴 문자열 상수입니다. 간단한 이름과 숫자 상수도 여기에 쓸 수 있지만 모두 문자열로 변환됩니다. 설명을 확인해주세요 배트맨 토토 함수의 구현 언어 이러한 인수에 어떻게 액세스할 수 있는지 알아보세요. 기능; 정상적인 기능과 다를 수 있습니다 인수.

참고

테이블에 배트맨 토토를 생성하려면 사용자는 다음을 가지고 있어야 합니다.배트맨 토토테이블에 대한 권한입니다. 사용자 또한 있어야 합니다실행에 대한 특권 배트맨 토토 기능.

사용PostgreSQL : 문서 : 9.2 : 드롭 메이저 토토 사이트제거하다 방아쇠.

열별 배트맨 토토(다음을 사용하여 정의된 배트맨 토토)업데이트열_이름구문)은 다음과 같은 경우 실행됩니다. 해당 열 중 일부는에 대상으로 나열됩니다.업데이트명령의SET목록. 열의 값은 다음과 같은 경우에도 변경될 수 있습니다. 행의 내용이 변경되었기 때문에 배트맨 토토가 실행되지 않습니다. 에 의해업데이트 전배트맨 토토가 아닙니다. 존경받는. 반대로, 다음과 같은 명령은업데이트 ... 설정 x = x ...다음에 배트맨 토토를 실행합니다. 열x, 열의 값이 변하지 않았습니다.

이전배트맨 토토, 그언제조건은 바로 직전에 평가됩니다. 함수가 실행 중이거나 실행될 예정이므로 다음을 사용하세요.언제테스트와 실질적으로 다르지 않습니다. 배트맨 토토 기능 시작 시 동일한 조건. 메모 특히신규다음이 본 행 조건은 이전에 의해 수정되었을 수 있는 현재 값입니다. 배트맨 토토. 또한, 가이전배트맨 토토의언제조건을 검사할 수 없습니다. 의 시스템 열신규행(예: 처럼oid), 왜냐하면 그건 그렇지 않았을 것이기 때문입니다. 아직 설정되지 않았습니다.

안에이후배트맨 토토, 그언제조건은 행 바로 다음에 평가됩니다. 업데이트가 발생하고 이벤트가 대기열에 있는지 여부를 결정합니다. 명령문 끝에서 배트맨 토토를 실행합니다. 그래서 언제이후배트맨 토토의언제조건이 true를 반환하지 않으므로 대기열에 추가할 필요가 없습니다. 이벤트가 종료될 때 행을 다시 가져오지도 않습니다. 이것은 할 수 있다 많은 부분을 수정하는 명령문의 속도가 크게 향상됩니다. 행, 배트맨 토토가 몇 개의 행에 대해서만 실행되어야 하는 경우 행.

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

함수 실행check_account_update행이 테이블계정곧 업데이트됨:

배트맨 토토 생성 check_update
    계정 업데이트 전
    각 행에 대해
    실행 절차 check_account_update();

동일하지만 열인 경우에만 함수를 실행합니다.균형이(가) 대상으로 지정되었습니다.업데이트명령:

배트맨 토토 생성 check_update
    계정 잔액 업데이트 전
    각 행에 대해
    실행 절차 check_account_update();

이 양식은 열인 경우에만 함수를 실행합니다.균형실제로 값이 변경되었습니다:

배트맨 토토 생성 check_update
    계정 업데이트 전
    각 행에 대해
    언제(OLD.balance가 NEW.balance와 다름)
    실행 절차 check_account_update();

업데이트를 기록하는 함수 호출계정, 그러나 뭔가 변경된 경우에만:

배트맨 토토 생성 log_update
    계정 업데이트 후
    각 행에 대해
    언제(이전.*가 새.*와 다름)
    실행 절차 log_account_update();

함수 실행view_insert_row각 행에 대해 행을 삽입하려면 뷰의 기본 테이블에:

배트맨 토토 생성 view_insert
    my_view에 삽입하는 대신
    각 행에 대해
    실행 절차 view_insert_row();

PostgreSQL : 문서 : 9.2 : 완전한 토토 커뮤니티 예다음을 포함 C로 작성된 배트맨 토토 함수의 전체 예

호환성

배트맨 토토 생성문의 내용PostgreSQL하위 집합을 구현합니다. 의SQL표준. 그만큼 현재 다음 기능이 없습니다:

  • SQL을 사용하면 다음에 대한 별칭을 정의할 수 있습니다."오래된"그리고"새로운"배트맨 토토된 정의에 사용되는 행 또는 테이블 작업(예:배트맨 토토 생성... 켜기 테이블 이름 REFERENCING OLD ROW AS somename NEW ROW AS 다른 이름 ...). 부터PostgreSQL배트맨 토토 프로시저를 허용합니다. 원하는 수의 사용자 정의 언어로 작성 가능 데이터는 언어별 방식으로 처리됩니다.

  • PostgreSQL만 허용합니다 배트맨 토토된 사용자 정의 함수의 실행 행동. 표준은 다양한 실행을 허용합니다. 다른 SQL 명령(예:만들기 테이블, 배트맨 토토된 작업으로. 이 제한은 그렇지 않습니다. 사용자 정의 함수를 생성하여 해결하기가 어렵습니다. 원하는 명령을 실행합니다.

SQL은 여러 배트맨 토토가 실행되어야 함을 지정합니다. 생성 시간 순서입니다.포스트그레SQL판단된 이름 순서를 사용합니다. 좀 더 편리하게.

SQL에서는 다음을 지정합니다.삭제 전연속 삭제 실행 배트맨 토토이후계단식삭제완료되었습니다. 그만큼포스트그레SQL행동은삭제 전삭제 전에 항상 실행 액션, 심지어 계단식 액션까지. 이는 더 일관된 것으로 간주됩니다. 다음과 같은 경우에도 비표준 동작이 있습니다.이전배트맨 토토는 행을 수정하거나 업데이트를 방지합니다. 참조 작업으로 인해 발생한 업데이트 중 이것은 할 수 있다 제약 조건 위반 또는 이를 준수하지 않는 저장된 데이터로 이어짐 참조 제약 조건입니다.

단일 배트맨 토토에 대해 여러 작업을 지정하는 기능 사용 중또는포스트그레SQLSQL 확장 기준.

다음에 대한 배트맨 토토를 실행하는 능력잘라내기포스트그레SQLSQL 표준의 확장, 다음과 같습니다. 뷰에서 명령문 수준 배트맨 토토를 정의하는 기능입니다.

제약 배트맨 토토 생성포스트그레SQL확장SQL표준.