[제약] 스포츠 토토 생성이름이전 | 이후 | 대신이벤트[ 또는 ... ]
켜짐테이블_이름[ 보낸 사람referenced_table_name]
[ 연기할 수 없음 | [ 연기 가능 ] 처음에는 즉시 | 처음에는 연기됨 ]
[ [ 각각 ] 에 대해 ] 행 | 진술 ]
[ 언제 (조건) ]
실행 절차함수_이름 ( 인수 )
어디에서이벤트다음 중 하나일 수 있습니다.삽입
업데이트 [ OF열_이름[, ... ] ]
삭제
자르기스포츠 토토 생성새 스포츠 토토를 생성합니다. 스포츠 토토는 지정된 테이블이나 뷰와 연결되며 지정된 기능을 실행합니다함수_이름특정 이벤트가 발생할 때.
작업이 완료되기 전에 스포츠 토토가 실행되도록 지정할 수 있습니다. 행에서 시도되었습니다(제약조건을 확인하기 전 및삽입, 업데이트, 또는삭제시도됨); 또는 그 이후 작업이 완료되었습니다(제약조건을 확인한 후삽입, 업데이트, 또는삭제완료); 아니면 대신에 작업(삽입, 업데이트 또는 삭제의 경우) 보기). 스포츠 토토가 이벤트 이전이나 이벤트 대신에 실행되는 경우 스포츠 토토는 현재 행에 대한 작업을 건너뛰거나 변경할 수 있습니다. 삽입되는 행(for삽입그리고업데이트작업 전용). 방아쇠를 당기는 경우 이벤트 이후의 화재, 기타 효과를 포함한 모든 변경 사항 스포츠 토토는"표시됨"에 스포츠 토토.
표시된 스포츠 토토각 행에 대해작업이 수정되는 모든 행에 대해 한 번씩 호출됩니다. 에 대한 예를 들어, a삭제10개 행에 영향을 미침 어떤 원인이 될 것입니다삭제 중에 대한 스포츠 토토 대상 관계는 각각 한 번씩, 10번 호출됩니다. 삭제된 행. 대조적으로, 다음과 같이 표시된 스포츠 토토는각 진술에 대해주어진 내용에 대해 한 번만 실행됩니다. 수정하는 행 수에 관계없이 작업(특히, 0개의 행을 수정하는 작업은 여전히 해당하는 모든 실행각각 성명스포츠 토토).
발동하도록 지정된 스포츠 토토대신 OF스포츠 토토 이벤트가 표시되어야 합니다에 대한 각 행, 뷰에서만 정의할 수 있습니다.이전그리고이후스포츠 토토 뷰에서는 다음과 같이 표시되어야 합니다.각각 성명.
추가로 다음을 위해 실행되도록 스포츠 토토를 정의할 수 있습니다.잘라내기하지만 오직각각 성명.
다음 표에는 어떤 유형의 스포츠 토토가 포함될 수 있는지 요약되어 있습니다. 테이블과 뷰에 사용됩니다:
| 언제 | 이벤트 | 행 수준 | 문 수준 |
|---|---|---|---|
| 이전 | 삽입/업데이트/삭제 | 테이블 | 테이블 및 보기 |
| 잘라내기 | — | 테이블 | |
| 이후 | 삽입/업데이트/삭제 | 테이블 | 테이블 및 보기 |
| 잘라내기 | — | 테이블 | |
| 대신 OF | 삽입/업데이트/삭제 | 조회수 | — |
| 잘라내기 | — | — |
또한 스포츠 토토 정의는 부울을 지정할 수 있습니다.언제조건, 여부를 확인하기 위해 테스트됩니다. 방아쇠가 발사되어야합니다. 행 수준에서 스포츠 토토는언제조건은 이전 값 및/또는 새 값을 검사할 수 있습니다. 행의 열 수입니다. 명령문 수준 스포츠 토토는 다음을 가질 수도 있습니다.언제조건이지만 기능은 다음과 같습니다. 조건이 어떤 것도 참조할 수 없기 때문에 그들에게는 그다지 유용하지 않습니다. 테이블의 값입니다.
동일한 유형의 여러 스포츠 토토가 동일한 항목에 대해 정의된 경우 이벤트가 발생하면 이름의 알파벳 순서로 실행됩니다.
때제약옵션은 지정하면 이 명령은제약 스포츠 토토. 이는 일반 스포츠 토토와 동일하지만 스포츠 토토 실행 타이밍은 다음을 사용하여 조정할 수 있습니다.제약조건 설정. 제약 조건 스포츠 토토 이어야 합니다행 이후스포츠 토토. 그들은 수 있습니다 명령문의 끝에서 실행되어 스포츠 토토를 유발합니다. 이벤트 또는 포함된 트랜잭션이 끝날 때; 후자의 경우 그런 경우라고 합니다지연. 에이 보류 중인 지연 스포츠 토토 실행이 강제로 발생하도록 할 수도 있습니다. 즉시 사용하여제약조건 설정. 제약조건 스포츠 토토는 다음과 같은 경우 예외를 발생시킬 것으로 예상됩니다. 구현한 제약 조건을 위반했습니다.
선택행을 수정하지 않으므로 만들 수 없습니다.선택스포츠 토토. 규칙과 그러한 경우에는 견해가 더 적절합니다.
참조토토 사이트 : 문서 : 9.3 : 트리거더 보기 스포츠 토토에 대한 정보입니다.
새 스포츠 토토에 부여할 이름입니다. 이는 다음과 구별되어야 합니다. 동일한 테이블에 대한 다른 스포츠 토토의 이름입니다. 이름은 안되요 스키마 한정 — 스포츠 토토는 해당 테이블의 스키마를 상속합니다. 제약 조건 스포츠 토토의 경우 이는 다음과 같은 경우에 사용하는 이름이기도 합니다. 다음을 사용하여 스포츠 토토 동작 수정세트 제약.
함수가 호출되기 전, 후에 또는 호출되는지 결정합니다. 이벤트 대신. 제약 조건 스포츠 토토는 다음과 같이만 지정할 수 있습니다.이후.
다음 중 하나삽입, 업데이트, 삭제또는잘라내기; 이는 다음과 같은 이벤트를 지정합니다. 방아쇠를 당길 것입니다. 다음을 사용하여 여러 이벤트를 지정할 수 있습니다.또는.
용업데이트이벤트, 다음이 가능합니다. 다음 구문을 사용하여 열 목록을 지정합니다.
업데이트열_이름1 [, column_name2 ... ]
스포츠 토토는 나열된 열 중 하나 이상이 있는 경우에만 실행됩니다. 의 대상으로 언급됩니다.업데이트명령.
업데이트 대신이벤트는 지원하지 않습니다 열 목록입니다.
테이블의 이름(선택적으로 스키마 한정) 또는 보기 스포츠 토토는 다음을 위한 것입니다.
참조된 다른 테이블의 (스키마 한정) 이름 제약으로. 이 옵션은 외래 키 제약 조건에 사용됩니다. 일반적인 용도로는 권장되지 않습니다. 이것만 지정할 수 있습니다. 제약 조건 스포츠 토토의 경우.
스포츠 토토의 기본 타이밍. 참조테이블 생성자세한 내용은 문서 이러한 제약 조건 옵션 중 하나입니다. 이는 다음에 대해서만 지정할 수 있습니다. 제약 조건이 스포츠 토토됩니다.
이것은 스포츠 토토 절차가 실행되어야 하는지 여부를 지정합니다 스포츠 토토 이벤트의 영향을 받는 모든 행에 대해 한 번 또는 SQL문. 둘 다 지정되지 않은 경우,에 대한 각 진술기본값입니다. 제약 조건 스포츠 토토는 다음과 같습니다. 지정됨각 행에 대해.
스포츠 토토 여부를 결정하는 부울 표현식 함수가 실제로 실행됩니다. 만일언제이 지정되면 함수만 호출됩니다. 만약에조건반환참. 에서각 행에 대해스포츠 토토,언제조건은 다음을 참조할 수 있습니다. 다음을 작성하여 이전 및/또는 새 행 값의 열오래된.열_이름또는새로운.컬럼_이름각각. 물론이죠,삽입스포츠 토토는 참조할 수 없습니다.오래된그리고삭제스포츠 토토 참조할 수 없음신규.
대신스포츠 토토는 지원하지 않습니다.언제조건.
현재,언제표현식은 사용할 수 없습니다 하위 쿼리를 포함합니다.
제약 조건 스포츠 토토의 경우 다음 평가에 유의하세요.언제조건이 연기되지 않았지만 발생했습니다. 행 업데이트 작업이 수행된 직후입니다. 만약 조건이 true로 평가되지 않으면 스포츠 토토가 대기열에 추가되지 않습니다. 지연된 실행을 위해.
인수를 사용하지 않는 것으로 선언된 사용자 제공 함수 및 반환 유형스포츠 토토입니다. 스포츠 토토가 실행될 때 실행됩니다.
다음에 제공할 선택적 쉼표로 구분된 인수 목록입니다. 스포츠 토토가 실행될 때의 함수입니다. 인수는 다음과 같습니다 리터럴 문자열 상수. 간단한 이름과 숫자 상수는 다음과 같습니다. 여기에도 작성되지만 모두 문자열로 변환됩니다. 구현 언어에 대한 설명을 확인하세요. 이러한 인수에 액세스할 수 있는 방법을 알아내는 스포츠 토토 함수 기능 내에서; 정상적인 기능과 다를 수 있습니다 인수.
테이블에 스포츠 토토를 생성하려면 사용자는 다음을 가지고 있어야 합니다.스포츠 토토테이블에 대한 권한입니다. 사용자 또한 있어야 합니다실행에 대한 특권 스포츠 토토 기능.
사용스포츠 토토 베트맨 : 문서 : 9.3 : 드롭 트리거제거하려면 스포츠 토토.
열별 스포츠 토토(다음을 사용하여 정의된 스포츠 토토)업데이트열_이름구문)은 다음과 같은 경우 실행됩니다. 해당 열 중 일부는에 대상으로 나열됩니다.업데이트명령의SET목록. 스포츠 토토가 발생하더라도 열의 값이 변경될 수 있습니다. 에 의해 행의 내용이 변경되었기 때문에 실행되지 않습니다.업데이트 전스포츠 토토는 고려되지 않습니다. 반대로, 다음과 같은 명령은업데이트 ... 설정 x = x ...열에서 스포츠 토토를 실행합니다x, 열의 값이 일치하지 않았더라도 변경합니다.
에이전스포츠 토토, 그언제조건은 함수 직전에 평가됩니다. 실행되거나 실행될 예정이므로 다음을 사용합니다.언제이다 동일한 조건을 테스트하는 것과 실질적으로 다르지 않습니다. 스포츠 토토 기능의 시작. 특히 다음 사항에 유의하세요.신규23636_23737이전스포츠 토토의언제조건은 시스템을 검사하는 것이 허용되지 않습니다. 의 열신규행(예:oid), 아직 설정되지 않았기 때문입니다.
안에이후스포츠 토토, 그언제조건은 행 바로 다음에 평가됩니다. 업데이트가 발생하고 이벤트가 실행되도록 대기열에 있는지 여부를 결정합니다. 명령문 끝의 스포츠 토토. 그래서 언제이후스포츠 토토의언제조건이 true를 반환하지 않으므로 대기열에 추가할 필요가 없습니다. 이벤트가 종료될 때 행을 다시 가져오지도 않습니다. 이로 인해 발생할 수 있는 많은 행을 수정하는 명령문의 속도가 크게 향상됩니다. 스포츠 토토는 일부 행에 대해서만 실행되어야 합니다.
보기의 명령문 수준 스포츠 토토는 작업이 다음과 같은 경우에만 실행됩니다. 뷰에서는 행 수준으로 처리됩니다.대신 OF스포츠 토토. 작업이에 의해 처리되는 경우대신rule, 그러면 어떤 문이든 내보내집니다. 규칙에 따라 원래 명령문 이름 대신 실행됩니다. 실행될 스포츠 토토가 교체 문에 이름이 지정된 테이블입니다. 마찬가지로, 보기의 경우 자동으로 업데이트할 수 있는 경우 해당 작업은 다음에 의해 처리됩니다. 뷰의 작업으로 명령문을 자동으로 다시 작성합니다. 기본 테이블의 명령문 수준 스포츠 토토가 해고된 것.
에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();
사설 토토 : 문서 : 9.3 : 완전한 트리거 예다음을 포함 C로 작성된 스포츠 토토 함수의 전체 예
그스포츠 토토 생성문의 내용PostgreSQL다음의 하위 집합을 구현합니다.SQL표준. 다음 현재 기능이 없습니다:
SQL을 사용하면 다음에 대한 별칭을 정의할 수 있습니다."오래된"그리고"새로운"행 또는 스포츠 토토된 작업의 정의에 사용되는 테이블(예:CREATE TRIGGER ... ON 테이블 이름 REFERENCING OLD ROW AS 다른 이름 NEW ROW AS 다른 이름 ...). 이후포스트그레SQL스포츠 토토 절차를 허용합니다. 다양한 사용자 정의 언어로 작성되어 데이터에 액세스 언어별 방식으로 처리됩니다.
PostgreSQL허용하지 않습니다 명령문 수준 스포츠 토토에서 참조할 이전 테이블과 새 테이블, 즉, 모든 이전 및/또는 새 행을 포함하는 테이블입니다. 다음으로 참조됩니다.오래된 테이블그리고새 테이블절SQL표준.
PostgreSQL만 허용합니다 스포츠 토토된 작업에 대한 사용자 정의 함수 실행. 는 표준에서는 다양한 다른 SQL 명령을 실행할 수 있습니다. 같은테이블 생성, 스포츠 토토됨 행동. 이 제한은 다음을 생성하여 해결하기 어렵지 않습니다. 원하는 명령을 실행하는 사용자 정의 함수입니다.
SQL은 여러 스포츠 토토가 실행되어야 함을 지정합니다. 생성 시간 순서입니다.PostgreSQL더 편리한 것으로 판단된 이름 순서를 사용합니다.
SQL에서는 다음을 지정합니다.삭제 전연속 삭제 실행 스포츠 토토이후계단식삭제완료되었습니다.PostgreSQL행동은삭제 전항상 삭제 전에 실행 액션, 심지어 계단식 액션까지. 이는 더 일관된 것으로 간주됩니다. 다음과 같은 경우에도 비표준 동작이 있습니다.이전스포츠 토토는 행을 수정하거나 업데이트를 방지합니다. 참조 작업으로 인해 발생한 업데이트 중 이것은 할 수 있다 제약 조건 위반 또는 이를 준수하지 않는 저장된 데이터로 이어짐 참조 제약 조건입니다.
단일 스포츠 토토에 대해 여러 작업을 지정하는 기능 사용 중또는은포스트그레SQLSQL 표준의 확장입니다.
다음에 대한 스포츠 토토를 실행하는 능력잘라내기은포스트그레SQLSQL 표준의 확장, 다음과 같습니다. 뷰에서 명령문 수준 스포츠 토토를 정의하는 기능입니다.
제약 스포츠 토토 생성은PostgreSQL확장SQL표준.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 텍스트 검색 생성 템플릿 | 위로 | 유형 생성 |