이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 사설 사설 토토 사이트 생성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

사설 토토 사이트 만들기

이름

사설 토토 사이트 작성-새 사설 토토 사이트 정의

시놉시스

[제약 조건] 사설 토토 사이트 만들기이름이전 | 후 | 대신이벤트[또는 ...]
    에table_name[From참조 _table_name]
    [연기되지 않음 | [연기 가능] [처음에는 즉시 | 처음에 연기]]]
    [[각] 행 | 성명  ]
    [ 언제 (조건)]
    절차 실행function_name(인수)여기서이벤트중 하나 일 수 있습니다 :삽입
    업데이트 [column_name[, ...]]
    삭제
    잘린

설명

사설 토토 사이트 만들기새 사설 토토 사이트를 만듭니다. 사설 토토 사이트는 지정된 테이블, 뷰 또는 이물질 테이블과 연관되며 지정된 기능을 실행합니다function_name특정 이벤트가 발생하는 경우

사설 토토 사이트는 작업을 행에서 시도하기 전에 발사하도록 지정할 수 있습니다 (제약 조건을 확인하기 전에삽입, 업데이트또는삭제시도된다); 또는 작업이 완료된 후 (제약 조건을 확인한 후삽입, 업데이트12215_12222삭제완료되었습니다); 또는 조작 대신 (삽입, 업데이트 또는 삭제의 경우). 사설 토토 사이트가 이벤트 전 또는 대신 발사되는 경우 사설 토토 사이트는 현재 행의 작업을 건너 뛰거나 삽입되는 행을 변경할 수 있습니다 (for삽입and업데이트운영 만). 이벤트 후 방아쇠가 발생하면 다른 사설 토토 사이트의 영향을 포함한 모든 변경 사항이입니다."Visible"사설 토토 사이트에게.

표시된 사설 토토 사이트각 행작업이 수정하는 모든 행마다 한 번 호출됩니다. 예를 들어, A삭제10 행에 영향을 미치는 행은 모든 원인이됩니다ON DELETE각 삭제 된 행에 대해 한 번, 10 개의 별도 시간이라고 불리는 대상 관계에서 사설 토토 사이트링합니다. 대조적으로, 표시되는 방아쇠각 진술주어진 작업에 대해 한 번만 실행합니다. 수정하는 행 수에 관계없이 수정하는 경우 (특히 제로 행을 수정하는 작업은 여전히 ​​해당 가능한 임의의 실행을 초래합니다각 진술사설 토토 사이트). 에 주목하십시오삽입충돌에서 업데이트조항, 둘 다삽입and업데이트명령문 레벨 사설 토토 사이트가 해고됩니다.

화재로 지정된 사설 토토 사이트대신사설 토토 사이트 이벤트가 표시되어야합니다각 행, 뷰에서만 정의 할 수 있습니다.and이후보기의 사설 토토 사이트는로 표시되어야합니다.각 진술.

또한 사설 토토 사이트가 화재로 정의 될 수 있습니다Truncate각 진술.

다음 표는 테이블, 뷰 및 외국 테이블에 사용할 수있는 사설 토토 사이트 유형을 요약합니다.

언제 이벤트 로드 레벨 명령문 수준
삽입/업데이트/삭제 테이블 및 외국 테이블 테이블,보기 및 외국 테이블
Truncate - 테이블
이후 삽입/업데이트/삭제 테이블 및 외국 테이블 테이블,보기 및 외국 테이블
Truncate - 테이블
대신 삽입/업데이트/삭제 보기 -
Truncate - -

또한 사설 토토 사이트 정의는 부울을 지정할 수 있습니다언제조건. 사설 토토 사이트를 발사 해야하는지 확인하기 위해 테스트됩니다. 로드 레벨에서 사설 토토 사이트언제조건은 행의 기존 및/또는 새 값을 검사 할 수 있습니다. 진술 수준 사설 토토 사이트도 가질 수 있습니다when조건, 기능은 표의 값을 참조 할 수 없으므로 기능이 그다지 유용하지는 않지만.

동일한 사건에 대해 동일한 종류의 여러 사설 토토 사이트가 정의되면 이름으로 알파벳 순서로 해고됩니다.

언제제약옵션이 지정되어 있으며이 명령은 a를 만듭니다.제약 사설 토토 사이트. 이것은 사설 토토 사이트 발사의 타이밍을 사용하여 조정할 수 있다는 점을 제외하고는 일반 사설 토토 사이트와 동일합니다.PostgreSQL : 문서 : 9.6 : 토토 결과 세트. 제약 조건 사설 토토 사이트 여야합니다행 후테이블을 사설 토토 사이트합니다. 이들은 진술이 끝날 때 사설 토토 사이트링 이벤트를 일으키거나 포함 된 거래가 끝날 때 해고 될 수 있습니다. 후자의 경우 그들은라고합니다.연기. 보류중인 연기 사설 토토 사이트 발사는 즉시 사용하여 즉시 발생할 수 있습니다제약 세트. 구속 조건 사설 토토 사이트는 그들이 구현 한 제약 조건이 위반 될 때 예외를 제기 할 것으로 예상됩니다.

select행을 수정하지 않으므로 생성 할 수 없습니다select사설 토토 사이트. 그러한 경우 규칙과 견해는 더 적합합니다.

참조스포츠 토토 : 문서 : 9.6 : 트리거사설 토토 사이트에 대한 자세한 내용은

매개 변수

이름

새 사설 토토 사이트를 제공하는 이름. 이것은 같은 테이블에 대한 다른 사설 토토 사이트의 이름과 구별되어야합니다. 이름을 스키마 자격을 갖추지 못할 수 없습니다. 사설 토토 사이트는 테이블의 스키마를 상속합니다. 제약 사설 토토 사이트의 경우, 이것은 또한 사설 토토 사이트의 동작을 사용하여를 수정할 때 사용하는 이름이기도합니다.제약 세트.


이후
대신

이벤트 전, 후 또는 이벤트 대신 함수가 호출되는지 여부를 결정합니다. 제약 조건 사설 토토 사이트는로만 지정할 수 있습니다.이후.

이벤트

삽입, 업데이트, 삭제또는Truncate; 이것은 방아쇠를 발사 할 이벤트를 지정합니다. 여러 이벤트가를 사용하여 지정할 수 있습니다.또는.

for업데이트이벤트,이 구문을 사용하여 열 목록을 지정할 수 있습니다 :

업데이트column_name1[,column_name2...]

사설 토토 사이트는 나열된 열 중 하나 이상이의 대상으로 언급 된 경우에만 발사됩니다.업데이트명령.

Update 대신이벤트는 열 목록을 지원하지 않습니다.

table_name

테이블, 뷰 또는 이물질 테이블의 이름 (선택적으로 스키마 자격).

참조 _table_name

제약 조건에 의해 참조 된 다른 테이블의 (스키마 자격) 이름. 이 옵션은 외국 키 제약 조건에 사용되며 일반적인 사용에는 권장되지 않습니다. 이것은 제약 조건 사설 토토 사이트에 대해서만 지정할 수 있습니다.

연기 가능
연기가되지 않음
처음에 즉시
처음 연기

사설 토토 사이트의 기본 타이밍. 참조PostgreSQL : 문서 : 9.6 : 스포츠 토토 작성이러한 제약 조건 옵션에 대한 자세한 내용을위한 문서. 이것은 제약 조건 사설 토토 사이트에 대해서만 지정할 수 있습니다.

각 행
각 진술

이것은 사설 토토 사이트 이벤트의 영향을받는 모든 행에 대해 사설 토토 사이트 절차를 한 번 또는 SQL 명령문 당 한 번만 해고 해야하는지 여부를 지정합니다. 둘 다 지정되지 않으면각 진술기본값입니다. 구속 조건 사설 토토 사이트 만 지정할 수 있습니다각 행.

조건

사설 토토 사이트 함수가 실제로 실행되는지 여부를 결정하는 부울 표현. 만약에언제지정되어 있으며, 함수는 인 경우에만 호출됩니다.조건반환true. 안에각 행사설 토토 사이트,when조건은 작성하여 이전 및/또는 새 행 값의 열을 참조 할 수 있습니다old.column_name또는NEW.column_name각각. 물론,삽입사설 토토 사이트는 참조 할 수 없습니다oldand삭제사설 토토 사이트는 참조 할 수 없습니다NEW.

대신사설 토토 사이트는 지원하지 않습니다언제조건

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

제약 조건 사설 토토 사이트의 경우 평가가언제조건은 연기되지 않았지만 행 업데이트 작업이 수행 된 직후에 발생합니다. 조건이 True로 평가하지 않으면 방아쇠가 지연된 실행을 위해 대기열되지 않습니다.

function_name

인수가없고 유형을 반환하는 것으로 선언 된 사용자가 공급 된 함수사설 토토 사이트, 사설 토토 사이트가 발생할 때 실행됩니다.

인수

사설 토토 사이트가 실행될 때 함수에 제공 될 선택적 쉼표로 구분 된 인수 목록. 인수는 문자열 상수입니다. 간단한 이름과 숫자 상수도 여기에도 쓸 수 있지만 모두 문자열로 변환됩니다. 사설 토토 사이트 함수의 구현 언어에 대한 설명을 확인하여 이러한 인수에 어떻게 액세스 할 수 있는지 확인하십시오. 정상적인 기능 인수와 다를 수 있습니다.

노트

테이블에 사설 토토 사이트를 만들려면 사용자에게가 있어야합니다.사설 토토 사이트테이블의 특권. 사용자도execute사설 토토 사이트 함수의 권한.

usePostgreSQL :방아쇠를 제거하려면

열 특정 사설 토토 사이트 (하나는를 사용하여 정의되었습니다업데이트column_name구문)이 열이 대상으로 표시되면업데이트Command 'sSET목록. 사설 토토 사이트가 발사되지 않은 경우에도 열의 값이 변경 될 수 있습니다.업데이트 전사설 토토 사이트는 고려되지 않습니다. 반대로,와 같은 명령업데이트 ... SET X = X ...열에서 방아쇠를 발사합니다x23505_23555

자신의 사설 토토 사이트 코드를 작성하지 않고도 일반적인 문제를 해결하는 데 사용할 수있는 몇 가지 내장 사설 토토 사이트 기능이 있습니다. 보다PostgreSQL : 문서 : 9.6 : 토토 베이 함수.

at사설 토토 사이트,언제조건은 함수가 실행되기 직전에 평가됩니다.언제사설 토토 사이트 함수의 시작 부분에서 동일한 조건을 테스트하는 것과 실질적으로 다르지 않습니다. 특히NEW조건에서 볼 수있는 행은 이전 사설 토토 사이트에 의해 수정 될 수있는 현재 값입니다. 또한, ATrigger 's언제조건은의 시스템 열을 검사 할 수 없습니다.NEW행 (예 :OID), 아직 설정되지 않았기 때문에.

in이후사설 토토 사이트,언제조건은 행 업데이트가 발생한 직후에 평가되며 명세서 끝에서 사설 토토 사이트를 발사하기 위해 이벤트가 대기되는지 여부를 결정합니다. 그래서이후Trigger 's언제조건은 True를 반환하지 않으며, 이벤트를 대기하거나 문의 끝에서 행을 다시 가져올 필요는 없습니다. 이로 인해 사설 토토 사이트가 몇 줄에 대해서만 발사되면 많은 행을 수정하는 진술에서 상당한 속도를 높일 수 있습니다.

보기의 명령문 수준 사설 토토 사이트는 뷰의 조치가 줄 수준으로 처리되는 경우에만 해고됩니다대신사설 토토 사이트. 조치가 AN에 의해 ​​처리 된 경우대신규칙, 규칙에 따라 규칙에 의해 배출되는 모든 진술이 뷰의 이름을 지정하는 원래 진술 대신에 실행되므로 해고 될 사설 토토 사이트는 대체문에 명명 된 테이블에있는 사설 토토 사이트입니다. 마찬가지로,보기가 자동으로 업데이트되면, 조치를 뷰의 기본 테이블의 조치로 자동으로 재 작성하여 기본 테이블의 명령문 수준 사설 토토 사이트가 해고 된 것입니다..

inPostgreSQL7.3 이전 버전에서는 자리 표시 자 유형을 반환하는 사설 토토 사이트 기능을 선언해야했습니다opaque가 아니라사설 토토 사이트. 오래된 덤프 파일의로드를 지원하려면사설 토토 사이트 만들기returning으로 선언 된 함수를 수락합니다opaque, 그러나 통지를 발행하고 함수의 선언 된 반환 유형을로 변경합니다.사설 토토 사이트.

함수 실행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 ();

토토 : 문서 : 9.6 : 완전한 트리거 예C로 작성된 사설 토토 사이트 함수의 전체 예제를 포함합니다.

호환성

the사설 토토 사이트 만들기성명서PostgreSQL의 하위 집합을 구현합니다SQL표준. 다음 기능은 현재 누락되었습니다.

  • SQL은에 대한 별칭을 정의 할 수 있습니다."Old"and"New"사설 토토 사이트 된 동작의 정의에 사용할 행 또는 테이블 (예 :사설 토토 사이트 만들기 ... Tablemename에서 Old Row를 언젠가 새 행으로 기타 이름으로 참조하는 태블니 이름 ...). 부터PostgreSQL| 사설 토토 사이트 절차를 여러 사용자 정의 언어로 작성할 수있게되면 데이터에 대한 액세스는 언어 별 방식으로 처리됩니다..

  • PostgreSQL구식 및 새 테이블을 명세서 수준 사설 토토 사이트, 즉 모든 구식 및/또는 새 행을 포함하는 테이블, 즉에서 참조 할 수 없습니다.오래된 테이블New Table클로즈에서SQL표준.

  • PostgreSQL사설 토토 사이트 된 조치에 대한 사용자 정의 함수의 실행 만 허용합니다. 이 표준은와 같은 여러 다른 SQL 명령을 실행할 수 있습니다.테이블 생성, 사설 토토 사이트 된 동작으로. 이 제한은 원하는 명령을 실행하는 사용자 정의 함수를 만들어 작업하기가 어렵지 않습니다.

SQL 생성 시간으로 여러 사설 토토 사이트를 발사해야한다고 지정합니다.PostgreSQL더 편리하다고 판단 된 이름 순서를 사용합니다.

SQL은이를 지정합니다삭제 전캐스케이드 삭제 화재의 사설 토토 사이트이후계단식삭제완료. 그만큼PostgreSQL행동은삭제 전삭제 조치 전에 항상 발사하기 위해, 심지어 계단식. 이것은 더 일관된 것으로 간주됩니다. 비표준 행동이 있습니다.사설 토토 사이트 참조 조치로 인한 업데이트 중에 행을 수정하거나 업데이트를 방지합니다. 이로 인해 제약 조건 위반 또는 참조 제약을 존중하지 않는 저장된 데이터가 발생할 수 있습니다.

단일 사설 토토 사이트를 사용하여 여러 동작을 지정하는 기능또는isPostgreSQLSQL 표준 확장.

발사 능력TruncateisPostgreSQL보기에서 명령문 수준 사설 토토 사이트를 정의하는 기능과 마찬가지로 SQL 표준의 확장.

제약 사설 토토 사이트 생성isPostgreSQL확장SQL표준.