스포츠 토토 만들기 - 새 스포츠 토토 정의
만들기 [또는 교체] [구속 조건] 스포츠 토토이름
이전 | 후 | 대신이벤트
[또는 ...] 에table_name
[From참조 _table_name
] [연기되지 않음 | [연기 가능] [처음에는 즉시 | 처음에 연기]]] [참조 old | 새로운 테이블 [as]antransition_relation_name
[...]] [[각] 행 | 성명 ] [ 언제 (조건
)]] function | 절차function_name
(인수
)여기서이벤트
|삽입 업데이트 [column_name
[, ...]] 삭제 잘린
스포츠 토토 만들기
새 스포츠 토토를 만듭니다.스포츠 토토 생성 또는 교체
새 스포츠 토토를 생성하거나 기존 스포츠 토토를 교체합니다. 스포츠 토토는 지정된 테이블, 뷰 또는 이물질 테이블과 연관되며 지정된 기능을 실행합니다function_name
해당 테이블에서 특정 작업이 수행되는 경우.
기존 트리거의 현재 정의를 대체하려면 사용스포츠 토토 생성 또는 교체
, 기존 트리거의 이름 및 상위 테이블을 지정합니다. 다른 모든 속성이 대체됩니다.
스포츠 토토는 작업을 행에서 시도하기 전에 발사하도록 지정할 수 있습니다 (제약 조건을 확인하기 전에삽입
, 업데이트
또는삭제
시도된다); 또는 작업이 완료된 후 (제약 조건을 확인한 후삽입
, 업데이트
또는삭제
완료되었습니다); 또는 조작 대신 (삽입, 업데이트 또는 삭제의 경우). 스포츠 토토가 이벤트 전 또는 대신 발사되는 경우 스포츠 토토는 현재 행의 작업을 건너 뛰거나 삽입되는 행을 변경할 수 있습니다 (for삽입
and업데이트
운영 만). 이벤트 후 방아쇠가 발생하면 다른 트리거의 영향을 포함한 모든 변경 사항이입니다.“가시적”스포츠 토토에게.
표시된 스포츠 토토각 행
작업이 수정하는 모든 행에 대해 한 번 호출됩니다. 예를 들어, A삭제
10 행에 영향을 미치는 행위에 영향을 미칩니다ON DELETE
각 삭제 된 행에 대해 한 번, 10 개 별도 시간이라고 불리는 대상 관계에서 스포츠 토토링합니다. 대조적으로, 표시되는 방아쇠각 진술
주어진 작업에 대해 한 번만 실행합니다. 수정하는 행 수에 관계없이 수정하는 행 (특히 0 행을 수정하는 작업은 여전히 해당 가능한 모든 실행을 초래합니다각 진술
스포츠 토토).
화재로 지정된 스포츠 토토대신
스포츠 토토 이벤트가 표시되어야합니다각 행
, 뷰에서만 정의 할 수 있습니다.전
and이후
보기의 스포츠 토토는로 표시되어야합니다.각 진술
.
또한 스포츠 토토가 화재로 정의 될 수 있습니다Truncate
각 진술에 대해
.
다음 표는 테이블, 뷰 및 외국 테이블에 사용할 수있는 스포츠 토토 유형을 요약합니다.
언제 | 이벤트 | 로우 레벨 | 성명서 수준 |
---|---|---|---|
전 |
삽입 /업데이트 /삭제 |
테이블 및 외국 테이블 | 테이블,보기 및 외국 테이블 |
Truncate |
- | 테이블 및 외국 테이블 | |
이후 |
삽입 /업데이트 /삭제 |
테이블 및 외국 테이블 | 테이블,보기 및 외국 테이블 |
Truncate |
- | 테이블 및 외국 테이블 | |
대신 |
삽입 /업데이트 /삭제 |
보기 | - |
Truncate |
- | - |
또한 스포츠 토토 정의는 부울을 지정할 수 있습니다when
조건. 스포츠 토토를 발사 해야하는지 확인하기 위해 테스트됩니다. 로드 레벨에서 스포츠 토토언제
조건은 행의 기존 및/또는 새 값을 검사 할 수 있습니다. 진술 수준 스포츠 토토도 가질 수 있습니다언제
조건, 조건은 테이블의 값을 참조 할 수 없기 때문에 기능이 그다지 유용하지는 않지만.
같은 종류의 여러 스포츠 토토가 같은 이벤트에 대해 정의되면 이름으로 알파벳 순서로 해고됩니다.
언제제약
옵션이 지정되어 있으며,이 명령은 a를 만듭니다.제약 스포츠 토토.이것은 스포츠 토토 발사의 타이밍을 사용하여 조정할 수 있다는 점을 제외하고는 일반 스포츠 토토와 동일합니다.제약 세트
. 제약 조건 스포츠 토토 여야합니다After Row
일반 테이블 (이물 테이블이 아님)의 스포츠 토토. 이들은 진술이 끝날 때 스포츠 토토링 이벤트를 일으키거나 포함 된 거래가 끝날 때 해고 될 수 있습니다. 후자의 경우 그들은라고합니다.연기. 보류중인 연기 스포츠 토토 발사는 즉시 사용하여 즉시 발생할 수 있습니다제약 세트
. 구속 조건 스포츠 토토는 그들이 구현 한 제약 조건이 위반 될 때 예외를 제기 할 것으로 예상됩니다.
the참조
옵션을 활성화하여전환 관계, 현재 SQL 문에 의해 삽입, 삭제 또는 수정 된 모든 행을 포함하는 행 세트입니다. 이 기능을 통해 스포츠 토토는 한 번에 한 행뿐만 아니라 진술이 한 일에 대한 글로벌 관점을 볼 수 있습니다. 이 옵션은에만 허용됩니다.이후
제약 조건 스포츠 토토가 아닌 스포츠 토토; 또한 방아쇠가 인 경우업데이트
스포츠 토토, 지정해서는 안됩니다column_name
List.Old Table
한 번만 지정 될 수 있으며 발사 할 수있는 스포츠 토토에 대해서만 지정할 수 있습니다업데이트
또는삭제
; 그것은를 포함하는 전환 관계를 만듭니다.사전 이미지진술서에 의해 업데이트되거나 삭제 된 모든 행 중. 비슷하게,New Table
한 번만 지정 될 수 있으며, 발사 할 수있는 스포츠 토토에 대해서만업데이트
또는삽입
; 그것은를 포함하는 전환 관계를 만듭니다.after-Images진술서에 의해 업데이트되거나 삽입 된 모든 행 중.
select
행을 수정하지 않으므로 생성 할 수 없습니다select
스포츠 토토. 규칙과 견해는 필요한 것으로 보이는 문제에 대한 실행 가능한 솔루션을 제공 할 수 있습니다select
스포츠 토토.
참조스포츠 토토 사이트 :스포츠 토토에 대한 자세한 정보.
이름
새 스포츠 토토를 제공하는 이름. 이것은 같은 테이블에 대한 다른 트리거의 이름과 구별되어야합니다. 이름을 스키마 자격을 갖추지 못할 수 없습니다. 스포츠 토토는 테이블의 스키마를 상속합니다. 제약 트리거의 경우, 이것은 또한 트리거의 동작을 사용하여를 수정할 때 사용하는 이름이기도합니다.제약 세트
.
전
이후
대신
이벤트 전, 후 또는 대신 함수가 호출되는지 여부를 결정합니다. 제약 조건 스포츠 토토는로만 지정할 수 있습니다.이후
.
이벤트
중 하나삽입
, 업데이트
, 삭제
또는Truncate
; 이것은 방아쇠를 발사 할 이벤트를 지정합니다. 여러 이벤트가를 사용하여 지정할 수 있습니다.또는
, 전환 관계가 요청 된 경우를 제외하고.
for업데이트
이벤트,이 구문을 사용하여 열 목록을 지정할 수 있습니다 :
업데이트column_name1
[,column_name2
...]
스포츠 토토는 나열된 열 중 하나 이상이의 대상으로 언급 된 경우에만 발사됩니다.업데이트
명령 또는 나열된 열 중 하나가의 대상 인 열에 따라 생성 된 열인 경우업데이트
.
업데이트 대신
이벤트는 열 목록을 허용하지 않습니다. 전환 관계를 요청할 때 열 목록을 지정할 수 없습니다.
table_name
테이블,보기 또는 외국 테이블의 이름 (선택적으로 스키마 자격).
참조 _table_name
제약 조건에 의해 참조 된 다른 테이블의 (스키마 자격) 이름. 이 옵션은 외국 키 제약 조건에 사용되며 일반적인 사용에는 권장되지 않습니다. 이것은 제약 조건 스포츠 토토에 대해서만 지정할 수 있습니다.
연기 가능
연기가 없음
처음에 즉시
처음 연기
트리거의 기본 타이밍. 참조테이블 생성이러한 제약 조건 옵션에 대한 자세한 내용을위한 문서. 이것은 제약 조건 스포츠 토토에 대해서만 지정할 수 있습니다.
참조
이 키워드는 스포츠 토토 진술의 전환 관계에 대한 액세스를 제공하는 하나 또는 두 개의 관계 이름의 선언에 직전에 있습니다.
오래된 테이블
New Table
이 절은 다음 관계 이름이 이미지 전이 전이 관계 또는 이미지 후 전환 관계에 대한 것인지 여부를 나타냅니다..
Transition_Relation_name
이 전이 관계의 스포츠 토토 내에서 사용되는 (자격이없는) 이름.
각 행
각 진술
이것은 스포츠 토토 이벤트의 영향을받는 모든 행에 대해 스포츠 토토 함수를 한 번 또는 SQL 문자 당 한 번만 해고 해야하는지 여부를 지정합니다. 둘 다 지정되지 않으면각 진술
기본값입니다. 구속 조건 스포츠 토토 만 지정할 수 있습니다각 행
.
조건
스포츠 토토 함수가 실제로 실행되는지 여부를 결정하는 부울 표현. 만약에언제
지정되어 있으며, 함수는 인 경우에만 호출됩니다.조건
반환true
. 안에각 행
스포츠 토토,언제
조건은 작성하여 이전 및/또는 새 행 값의 열을 참조 할 수 있습니다old.
또는column_name
New.
각각. 물론,column_name
삽입
스포츠 토토는 참조 할 수 없습니다old
and삭제
스포츠 토토는 참조 할 수 없습니다NEW
.
대신
스포츠 토토는 지원하지 않습니다언제
조건
현재,언제
표현식은 하위 쿼리를 포함 할 수 없습니다.
제약 조건 트리거의 경우의 평가는언제
조건은 연기되지 않았지만 행 업데이트 작업이 수행 된 직후에 발생합니다. 조건이 True로 평가하지 않으면 방아쇠가 지연된 실행을 위해 대기열되지 않습니다.
function_name
인수가없고 유형을 반환하지 않는 것으로 선언 된 사용자가 제공하는 기능스포츠 토토
, 스포츠 토토가 발사 될 때 실행됩니다.
의 구문에서스포츠 토토 만들기
, 키워드기능
and절차
동등하지만, 참조 된 함수는 절차가 아닌 함수 여야합니다. 키워드 사용절차
여기 역사적이고 더 이상 사용되지 않습니다.
인수
스포츠 토토가 실행될 때 함수에 제공 될 선택적 쉼표로 구분 된 인수 목록. 인수는 문자열 상수입니다. 간단한 이름과 숫자 상수도 여기에도 쓸 수 있지만 모두 문자열로 변환됩니다. 스포츠 토토 함수의 구현 언어에 대한 설명을 확인하여 이러한 인수에 어떻게 액세스 할 수 있는지 확인하십시오. 정상적인 기능 인수와 다를 수 있습니다.
테이블의 스포츠 토토를 생성하거나 교체하려면 사용자에게가 있어야합니다.스포츠 토토
테이블의 특권. 사용자도execute
스포츠 토토 함수에 대한 권한.
use드롭 스포츠 토토
방아쇠를 제거하려면
파티션 된 테이블에서로드 레벨 스포츠 토토를 만드는 것은 동일하게 발생합니다“클론”기존 파티션 각각에서 생성 될 스포츠 토토; 나중에 생성되거나 첨부 된 파티션에는 동일한 스포츠 토토도 있습니다. 어린이 파티션에 이미 상충되는 이름 스포츠 토토가있는 경우 이미 오류가 발생하지 않으면 오류가 발생합니다.스포츠 토토 생성 또는 교체
가 사용됩니다.이 경우 스포츠 토토가 클론 스포츠 토토로 대체됩니다. 부모와 파티션이 분리되면 클론 스포츠 토토가 제거됩니다.
열 특정 스포츠 토토 (하나는를 사용하여 정의되었습니다업데이트
구문) 열이에 대상으로 표시되면column_name
업데이트
Command 'sSET
목록. 스포츠 토토가 발사되지 않은 경우에도 열의 값이 변경 될 수 있습니다.업데이트 전
스포츠 토토는 고려되지 않습니다. 반대로,와 같은 명령업데이트 ... SET X = X ...
열에서 방아쇠를 발사합니다x
, 열의 값이 변하지 않더라도.
in전
스포츠 토토,언제
조건은 함수가 실행되거나 실행되기 직전에 평가됩니다.언제
스포츠 토토 함수의 시작 부분에서 동일한 조건을 테스트하는 것과 실질적으로 다르지 않습니다. 특히NEW
조건에서 볼 수있는 행은 이전 스포츠 토토에 의해 수정 될 수있는 현재 값입니다. 또한, A전
Trigger 's언제
조건은의 시스템 열을 검사 할 수 없습니다.NEW
행 (예 :CTID
), 아직 설정되지 않았기 때문에.
in이후
스포츠 토토,언제
조건은 행 업데이트가 발생한 직후에 평가되며 명세서 끝에서 스포츠 토토를 발사하기 위해 이벤트가 대기되는지 여부를 결정합니다. 그래서이후
Trigger 's언제
조건은 True를 반환하지 않으며, 이벤트를 대기하거나 문의 끝에서 행을 다시 가져올 필요는 없습니다. 이로 인해 스포츠 토토가 몇 줄에 대해서만 발사되면 많은 행을 수정하는 진술에서 상당한 속도를 높일 수 있습니다.
경우에 따라 단일 SQL 명령이 하나 이상의 스포츠 토토를 발사 할 수 있습니다. 예를 들어삽입
with충돌에서 업데이트
절은 삽입 및 업데이트 작업을 모두 유발할 수 있으므로 필요에 따라 두 종류의 스포츠 토토를 모두 발사 할 수 있습니다. 스포츠 토토에 제공되는 전환 관계는 이벤트 유형에 따라 다릅니다. 따라서삽입
스포츠 토토는 삽입 된 행만 볼 수 있지만업데이트
스포츠 토토는 업데이트 된 행만 볼 수 있습니다.
외국 키 집행 조치로 인한 행 업데이트 또는 삭제업데이트 캐스케이드
또는on 삭제 세트 null
는 SQL 명령의 일부로 취급되어이를 유발하지 않습니다 (그러한 조치는 결코 연기되지 않음). 영향을받는 테이블의 관련 스포츠 토토가 발사되므로 SQL 명령이 유형과 직접 일치하지 않는 스포츠 토토를 발사 할 수있는 다른 방법을 제공합니다. 간단한 경우, 전환 관계를 요청하는 스포츠 토토는 단일 원래 SQL 명령으로 단일 전환 관계로 테이블에 발생하는 모든 변경 사항을 볼 수 있습니다. 그러나 AN의 존재가있는 경우가 있습니다.After Row
전환 관계를 요청하는 스포츠 토토는 단일 SQL 명령에 의해 스포츠 토토 된 외국 키 집행 조치가 각각 자체 전환 관계를 갖는 여러 단계로 분할됩니다. 이러한 경우, 존재하는 진술 수준 스포츠 토토는 전환 관계 세트를 생성 한마다 한 번 해고되어 스포츠 토토가 전환 관계에서 한 번만 한 번만 영향을받는 각 행을 보도록합니다..
보기의 명령문 수준 스포츠 토토는 뷰의 조치가로드 레벨로 처리되는 경우에만 해고됩니다대신
스포츠 토토. 조치가 AN에 의해 처리 된 경우대신
규칙, 규칙에 따라 규칙에 의해 배출되는 모든 진술이 뷰의 이름을 지정하는 원래 진술 대신 실행되므로 해고 될 스포츠 토토는 대체 문의 이름이 지정된 테이블에 있습니다. 마찬가지로,보기가 자동으로 업데이트되면, 조치를 뷰의 기본 테이블의 조치로 자동으로 재 작성하여 기본 테이블의 명령문 수준 스포츠 토토가 해고 된 것입니다..
상속 재료가있는 파티션 된 테이블 또는 테이블 수정 어린이가 명시 적으로 명명 된 테이블에 첨부 된 명세서 수준 스포츠 토토를 해고하지만 파티션이나 하위 테이블에 대한 명령문 수준 스포츠 토토는 아닙니다. 대조적으로, 쿼리에 명시 적으로 명명되지 않더라도 영향을받는 파티션 또는 하위 테이블에서 행 수준 스포츠 토토가 적용됩니다. 명령문 수준 스포츠 토토가 A에 의해 이름이 지정된 전환 관계로 정의 된 경우참조
조항, 그 후에 행의 이미지가 모든 영향을받는 파티션 또는 하위 테이블에서 볼 수 있습니다. 상속 어린이의 경우 행 이미지에는 스포츠 토토가 첨부 된 표에있는 열만 포함됩니다.
현재, 전환 관계가있는로드 레벨 스포츠 토토는 파티션 또는 상속 자식 테이블에서 정의 할 수 없습니다. 또한 분할 된 테이블의 스포츠 토토는대신
.
현재,또는 교체
옵션은 제약 스포츠 토토를 위해 지원되지 않습니다.
스포츠 토토 테이블에서 이미 업데이트 작업을 수행 한 트랜잭션 내에서 기존 스포츠 토토를 교체하는 것은 권장되지 않습니다. 이미 이루어진 발사 결정, 또는 해고 결정의 일부는 재고되지 않으므로 그 효과는 놀랍습니다.
자신의 스포츠 토토 코드를 작성하지 않고도 일반적인 문제를 해결하는 데 사용할 수있는 몇 가지 내장 스포츠 토토 기능이 있습니다. 보다PostgreSQL : 문서 : 17 : 9.29. 토토 꽁 머니 기능.
함수 실행check_account_update
표의 행이있을 때마다계정
업데이트 될 예정 :
스포츠 토토 check_update를 만듭니다 계정에 대한 업데이트 전에 각 행에 대해 함수 실행 check_account_update ();
열이면 함수 만 실행하도록 해당 스포츠 토토 정의를 수정하십시오밸런스
업데이트
명령 :
스포츠 토토 check_update를 만들거나 교체합니다 계정의 잔액 업데이트 전에 각 행에 대해 함수 실행 check_account_update ();
이 양식은 열이면 함수 만 실행합니다밸런스
실제로 값이 변경되었습니다 :
스포츠 토토 check_update를 만듭니다 계정에 대한 업데이트 전에 각 행에 대해 언제 (Old.Balance는 New.balance와 구별됩니다) 함수 실행 check_account_update ();
로그 업데이트를 위해 함수 호출계정
, 그러나 무언가가 변경된 경우에만 :
Trigger log_update 만들기 계정 업데이트 후 각 행에 대해 언제 (옛날.*는 새로 구별됩니다.*) 함수 실행 log_account_update ();
함수 실행View_Insert_row
보기의 기본 테이블에 행을 삽입하려면 각 행에 대해 :
Trigger View_Insert 작성 my_view에 삽입하는 대신 각 행에 대해 기능 view_insert_row (); 실행
함수 실행check_transfer_balances_to_zero
각 진술에 대해전송
행은 0의 순으로 오프셋됩니다 :
Trigger Transfer_Insert 작성 전송시 삽입 후 삽입 된대로 새 테이블을 참조합니다 각 진술에 대해 함수 실행 check_transfer_balances_to_zero ();
함수 실행check_matching_pairs
각 행에 대해 동시에 일치하는 쌍이 동시에 일치하는지 확인하기 위해 각 행에 대해 :
Trigger Paired_items_update 만들기 paired_items에 대한 업데이트 후 새 테이블을 NewTab Old Table으로 참조하여 OldTab 각 행에 대해 함수 실행 check_matching_pairs ();
사설 토토 : 문서 : 17 : 37.4. 완전한 트리거 예C로 작성된 스포츠 토토 함수의 전체 예제를 포함합니다.
the스포츠 토토 만들기
성명서PostgreSQL의 하위 집합을 구현합니다SQL표준. 다음 기능은 현재 누락되었습니다.
전환 테이블 이름에 대한이후
스포츠 토토는를 사용하여 지정됩니다참조
표준 방식의 조항, 사용 된 행 변수각 행
스포츠 토토는 a에 지정되지 않을 수 있습니다.참조
절. 스포츠 토토 함수가 쓰여지는 언어에 의존하는 방식으로 사용할 수 있지만 한 언어에 대해 고정됩니다. 일부 언어는 마치가있는 것처럼 효과적으로 행동합니다.참조
조항 포함오래된 행 새 행은 새로운 행
.
표준을 통해 전환 테이블을 열 특이 적으로 사용할 수 있습니다업데이트
스포츠 토토이지만 전환 테이블에서 볼 수있는 행 세트는 트리거의 열 목록에 따라 다릅니다. 이것은 현재에 의해 구현되지 않습니다PostgreSQL.
PostgreSQL스포츠 토토 된 조치에 대한 사용자 정의 함수의 실행 만 허용합니다. 이 표준은와 같은 여러 다른 SQL 명령을 실행할 수 있습니다.테이블 작성
, 스포츠 토토 된 동작으로. 이 제한은 원하는 명령을 실행하는 사용자 정의 함수를 만들어 작업하기가 어렵지 않습니다.
SQL 생성 시간으로 여러 스포츠 토토를 해고해야한다고 지정합니다.PostgreSQL더 편리한 것으로 판단 된 이름 순서를 사용합니다.
SQL을 지정합니다삭제 전
캐스케이드 삭제에 대한 스포츠 토토이후계단식삭제
완료. 그만큼PostgreSQL행동은삭제 전
삭제 조치 전에 항상 발사되기도합니다. 이것은 더 일관된 것으로 간주됩니다. 비표준 행동이 있습니다.전
스포츠 토토 참조 조치로 인한 업데이트 중에 행을 수정하거나 업데이트를 방지합니다. 이로 인해 제약 조건 위반 또는 참조 제약을 존중하지 않는 저장된 데이터가 발생할 수 있습니다.
단일 스포츠 토토를 사용하여 여러 동작을 지정하는 기능또는
ispostgresqlSQL 표준 확장.
발사 스포츠 토토 능력Truncate
isPostgreSQL뷰에서 명령문 수준 스포츠 토토를 정의하는 능력과 마찬가지로 SQL 표준의 확장.
제약 조건 스포츠 토토 생성
isPostgreSQL확장SQL표준. 도또는 교체
옵션.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면