스포츠 토토는 특정 유형의 작업이 수행될 때마다 데이터베이스가 자동으로 특정 기능을 실행해야 한다는 사양입니다. 스포츠 토토는 테이블(파티셔닝 여부와 상관없이), 뷰, 외부 테이블에 연결할 수 있습니다.
테이블 및 외부 테이블에서 스포츠 토토는 이전 또는 이후에 실행되도록 정의할 수 있습니다.삽입, 업데이트, 또는삭제작업, 수정된 행당 한 번 또는 행당 한 번SQL성명.업데이트또한 특정 열이 언급된 경우에만 스포츠 토토가 실행되도록 설정할 수 있습니다.SET의 절업데이트문장. 스포츠 토토는 다음에 대해 실행될 수도 있습니다.잘라내기문. 스포츠 토토 이벤트가 발생하면 이벤트를 처리하기 위해 적절한 시간에 스포츠 토토 함수가 호출됩니다.
뷰에서는 대신 실행되도록 스포츠 토토를 정의할 수 있습니다.삽입, 업데이트, 또는삭제작업. 그런대신스포츠 토토는 보기에서 수정해야 하는 각 행에 대해 한 번씩 실행됩니다. 뷰의 기본 테이블에 필요한 수정을 수행하고, 적절한 경우 뷰에 표시될 수정된 행을 반환하는 것은 스포츠 토토 기능의 책임입니다. 뷰에 대한 스포츠 토토는 1회당 한 번씩 실행되도록 정의할 수도 있습니다.SQL문, 이전 또는 이후삽입, 업데이트, 또는삭제작업. 그러나 이러한 스포츠 토토는 다음이 있는 경우에만 실행됩니다.대신뷰를 스포츠 토토합니다. 그렇지 않으면 뷰를 대상으로 하는 모든 명령문은 기본 기본 테이블에 영향을 미치는 명령문으로 다시 작성되어야 하며, 그러면 실행될 스포츠 토토는 기본 테이블에 연결된 스포츠 토토입니다.
스포츠 토토 자체가 생성되기 전에 스포츠 토토 기능을 정의해야 합니다. 스포츠 토토 함수는 인수를 사용하지 않고 유형을 반환하는 함수로 선언되어야 합니다.스포츠 토토. (스포츠 토토 함수는 특별히 전달된 메소드를 통해 입력을 받습니다.스포츠 토토데이터구조, 일반적인 함수 인수 형식이 아닙니다.)
적절한 스포츠 토토 기능이 생성되면 스포츠 토토는 다음과 같이 설정됩니다.스포츠 토토 생성. 여러 스포츠 토토에 동일한 스포츠 토토 기능을 사용할 수 있습니다.
포스트그레SQL둘 다 제공행당스포츠 토토 및문별스포츠 토토. 행별 스포츠 토토를 사용하면 스포츠 토토 함수는 스포츠 토토를 실행한 문에 의해 영향을 받는 각 행에 대해 한 번씩 호출됩니다. 대조적으로, 명령문별 스포츠 토토는 해당 명령문의 영향을 받는 행 수에 관계없이 적절한 명령문이 실행될 때 한 번만 호출됩니다. 특히, 0개의 행에 영향을 미치는 명령문은 여전히 적용 가능한 명령문별 스포츠 토토를 실행하게 됩니다. 이 두 가지 유형의 스포츠 토토를 때때로 호출합니다.행 수준스포츠 토토 및문 수준각각 스포츠 토토됩니다. 스포츠 토토 대상:잘라내기행별이 아닌 명령문 수준에서만 정의할 수 있습니다.
스포츠 토토는 실행 여부에 따라 분류됩니다.이전, 이후또는대신에작업. 이를 다음과 같이 지칭합니다.이전스포츠 토토,이후스포츠 토토 및대신각각 스포츠 토토됩니다. 명령문 수준이전문이 어떤 작업을 시작하기 전에 자연스럽게 스포츠 토토되는 반면, 문 수준이후문의 끝부분에서 실행을 유발합니다. 이러한 유형의 스포츠 토토는 테이블, 뷰 또는 외부 테이블에 정의될 수 있습니다. 행 수준이전특정 행이 작업되기 직전에 실행을 스포츠 토토하는 반면, 행 수준이후문의 끝에서 스포츠 토토가 실행됩니다(그러나 문 수준 이전이후스포츠 토토). 이러한 유형의 스포츠 토토는 뷰가 아닌 테이블과 외부 테이블에만 정의될 수 있습니다.대신스포츠 토토는 뷰에서만 정의할 수 있으며 행 수준에서만 정의할 수 있습니다. 뷰의 각 행이 작업이 필요한 것으로 식별되면 즉시 실행됩니다.
상속 또는 분할 계층의 상위 테이블을 대상으로 하는 명령문은 영향을 받는 하위 테이블의 명령문 수준 스포츠 토토를 실행시키지 않습니다. 상위 테이블의 명령문 수준 스포츠 토토만 실행됩니다. 그러나 영향을 받은 하위 테이블의 행 수준 스포츠 토토는 실행됩니다.
만일삽입포함충돌 시 업데이트를 하세요절, 행 수준의 효과가 가능함이전 삽입스포츠 토토 및 행 수준이전 업데이트스포츠 토토는 둘 다 업데이트된 행의 최종 상태에서 분명한 방식으로 적용될 수 있습니다.제외됨열이 참조되었습니다. 반드시 있을 필요는 없습니다.제외됨두 행 수준 세트에 대한 열 참조이전15589_15701이전 삽입그리고이전 업데이트삽입/업데이트되는 행을 변경하는 행 수준 스포츠 토토(수정 사항이 다소 동일하더라도 멱등성이 아닌 경우 문제가 될 수 있음). 명령문 수준에 유의하세요.업데이트스포츠 토토가 실행되는 경우충돌 시 업데이트를 하세요행이 영향을 받았는지 여부에 관계없이 지정됩니다.업데이트(대안 여부에 관계없이업데이트경로를 사용한 적이 있습니다). 안삽입그리고충돌 시 업데이트를 하세요절은 명령문 수준을 실행합니다이전 삽입먼저 스포츠 토토한 다음 명령문 수준이전 업데이트스포츠 토토, 이어서 명령문 수준이후 업데이트스포츠 토토 및 마지막으로 명령문 수준이후 삽입스포츠 토토.
만약업데이트파티션된 테이블에서 행이 다른 파티션으로 이동하게 되면 다음과 같이 수행됩니다.삭제원본 파티션에서 다음에 오는삽입새 파티션으로 이동하세요. 이 경우 모든 행 수준이전 업데이트스포츠 토토 및 모든 행 수준이전 삭제스포츠 토토는 원래 파티션에서 실행됩니다. 그런 다음 모든 행 수준이전 삽입스포츠 토토가 대상 파티션에서 실행됩니다. 이러한 모든 스포츠 토토가 이동 중인 행에 영향을 미칠 때 놀라운 결과가 발생할 가능성을 고려해야 합니다. 지금까지행 이후스포츠 토토가 우려됩니다.이후 삭제그리고이후 삽입스포츠 토토가 적용되었습니다. 하지만이후 업데이트스포츠 토토는 다음 때문에 적용되지 않습니다.업데이트a로 변환되었습니다.삭제그리고삽입. 명령문 수준 스포츠 토토에 관한 한 다음 중 어느 것도 없습니다.삭제또는삽입행 이동이 발생하더라도 스포츠 토토가 실행됩니다. 오직업데이트다음에 사용된 대상 테이블에 정의된 스포츠 토토업데이트문이 실행됩니다.
문별 스포츠 토토에 의해 호출된 스포츠 토토 함수는 항상 반환되어야 합니다.NULL. 행별 스포츠 토토에 의해 호출된 스포츠 토토 함수는 테이블 행(유형의 값)을 반환할 수 있습니다.힙튜플)를 호출 실행자에게 전달합니다(선택한 경우). 작업 전에 실행되는 행 수준 스포츠 토토에는 다음 선택 사항이 있습니다.
돌아올 수 있습니다NULL현재 행에 대한 작업을 건너뜁니다. 이는 스포츠 토토를 호출한 행 수준 작업(특정 테이블 행의 삽입, 수정 또는 삭제)을 수행하지 않도록 실행자에게 지시합니다.
행 수준의 경우삽입그리고업데이트스포츠 토토만, 반환된 행은 업데이트되는 행을 삽입하거나 대체할 행이 됩니다. 이를 통해 스포츠 토토 함수가 삽입되거나 업데이트되는 행을 수정할 수 있습니다.
행 수준이전이러한 동작 중 하나를 발생시키려는 의도가 없는 스포츠 토토는 전달된 것과 동일한 행을 결과로 반환하도록 주의해야 합니다(즉,신규행삽입그리고업데이트스포츠 토토,오래된행삭제스포츠 토토).
행 수준대신스포츠 토토는 둘 중 하나를 반환해야 합니다.NULL뷰의 기본 기본 테이블에서 데이터를 수정하지 않았거나 전달된 뷰 행을 반환해야 함을 나타냅니다(신규행삽입그리고업데이트작업 또는오래된행삭제작업). Null이 아닌 반환 값은 스포츠 토토가 뷰에서 필요한 데이터 수정을 수행했음을 알리는 데 사용됩니다. 이렇게 하면 명령의 영향을 받는 행 수가 증가합니다. 에 대한삽입그리고업데이트작업 전용, 스포츠 토토는 다음을 수정할 수 있습니다.신규행을 반환하기 전에. 그러면 반환된 데이터가 변경됩니다.반환 삽입또는업데이트 반환 중, 제공된 데이터와 정확히 동일한 데이터가 뷰에 표시되지 않을 때 유용합니다.
작업 후에 실행된 행 수준 스포츠 토토의 경우 반환 값이 무시되므로 반환할 수 있습니다.NULL.
생성된 열에는 몇 가지 고려 사항이 적용됩니다.저장된 생성 열은 다음 이후에 계산됩니다.이전스포츠 토토 및 이전이후스포츠 토토. 따라서 생성된 값은 다음에서 확인할 수 있습니다.이후스포츠 토토. 안에이전스포츠 토토,오래된행에는 예상한 대로 이전에 생성된 값이 포함되어 있지만신규행에는 새로 생성된 값이 아직 포함되어 있지 않으므로 액세스하면 안 됩니다. C 언어 인터페이스에서는 이 시점에서 열의 내용이 정의되지 않습니다. 더 높은 수준의 프로그래밍 언어는에 저장된 생성 열에 대한 액세스를 방지해야 합니다.신규행의 a이전스포츠 토토. a에서 생성된 열 값 변경이전스포츠 토토는 무시되고 덮어쓰여집니다.
동일한 관계의 동일한 이벤트에 대해 하나 이상의 스포츠 토토가 정의된 경우 스포츠 토토는 스포츠 토토 이름에 따라 알파벳 순서로 실행됩니다. 의 경우이전그리고대신스포츠 토토, 각 스포츠 토토에서 반환된 수정 가능성이 있는 행은 다음 스포츠 토토에 대한 입력이 됩니다. 있다면이전또는대신스포츠 토토 반환NULL, 해당 행에 대한 작업이 중단되고 해당 행에 대한 후속 스포츠 토토가 실행되지 않습니다.
스포츠 토토 정의는 부울을 지정할 수도 있습니다.언제조건은 스포츠 토토가 실행되어야 하는지 확인하기 위해 테스트됩니다. 행 수준에서 스포츠 토토는언제조건은 행 열의 이전 및/또는 새 값을 검사할 수 있습니다. (문 수준 스포츠 토토도 다음을 가질 수 있습니다.언제조건이지만 이 기능은 그다지 유용하지 않습니다.) a이전스포츠 토토, 그언제조건은 함수가 실행되거나 실행되기 직전에 평가되므로 다음을 사용합니다.언제는 스포츠 토토 기능 시작 시 동일한 조건을 테스트하는 것과 크게 다르지 않습니다. 그러나,이후스포츠 토토, 그언제조건은 행 업데이트가 발생한 직후 평가되며 명령문 끝에서 스포츠 토토를 실행하기 위해 이벤트가 대기열에 있는지 여부를 결정합니다. 그래서 언제이후스포츠 토토의언제조건이 true를 반환하지 않으므로 이벤트를 대기열에 넣거나 명령문 끝에서 행을 다시 가져올 필요가 없습니다. 이로 인해 스포츠 토토가 일부 행에 대해서만 실행되어야 하는 경우 많은 행을 수정하는 문의 속도가 크게 향상될 수 있습니다.대신스포츠 토토는 지원하지 않습니다.언제조건.
일반적으로 행 수준이전스포츠 토토는 삽입되거나 업데이트될 데이터를 확인하거나 수정하는 데 사용됩니다. 예를 들어,이전스포츠 토토는 현재 시간을 a에 삽입하는 데 사용될 수 있습니다.타임스탬프열 또는 행의 두 요소가 일치하는지 확인합니다. 행 수준이후스포츠 토토는 업데이트를 다른 테이블에 전파하거나 다른 테이블에 대해 일관성을 검사하는 데 가장 현명하게 사용됩니다. 이러한 노동 분업의 이유는 다음과 같습니다.이후스포츠 토토는 행의 최종 값을 보고 있음을 확신할 수 있지만 a이전스포츠 토토를 실행할 수 없습니다. 다른 것이 있을 수도 있습니다이전그 이후에 발사가 시작됩니다. 스포츠 토토를 할 특별한 이유가 없는 경우이전또는이후, 그이전case가 더 효율적입니다. 작업에 대한 정보는 명령문이 끝날 때까지 저장할 필요가 없기 때문입니다.
스포츠 토토 기능이 SQL 명령을 실행하는 경우 이러한 명령은 스포츠 토토를 다시 실행할 수 있습니다. 이를 계단식 스포츠 토토라고 합니다. 캐스케이드 레벨 수에는 직접적인 제한이 없습니다. 계단식 배열로 인해 동일한 스포츠 토토가 재귀적으로 호출될 수 있습니다. 예를 들어,삽입스포츠 토토는 동일한 테이블에 추가 행을 삽입하는 명령을 실행할 수 있으며, 이로 인해삽입스포츠 토토가 다시 실행됩니다. 이러한 시나리오에서 무한 재귀를 방지하는 것은 스포츠 토토 프로그래머의 책임입니다.
스포츠 토토가 정의될 때 이에 대한 인수를 지정할 수 있습니다. 스포츠 토토 정의에 인수를 포함하는 목적은 유사한 요구 사항을 가진 다양한 스포츠 토토가 동일한 함수를 호출할 수 있도록 하는 것입니다. 예를 들어, 두 개의 열 이름을 인수로 사용하고 현재 사용자를 하나에 배치하고 현재 타임스탬프를 다른 하나에 배치하는 일반화된 스포츠 토토 함수가 있을 수 있습니다. 올바르게 작성되면 이 스포츠 토토 함수는 스포츠 토토되는 특정 테이블과 독립적입니다. 따라서 동일한 기능을 사용할 수 있습니다.삽입26666_26858업데이트스포츠 토토.
스포츠 토토를 지원하는 각 프로그래밍 언어에는 스포츠 토토 입력 데이터를 스포츠 토토 기능에 사용할 수 있도록 만드는 고유한 방법이 있습니다. 이 입력 데이터에는 스포츠 토토 이벤트 유형이 포함됩니다(예:삽입또는업데이트) 및 다음에 나열된 모든 인수스포츠 토토 생성. 행 수준 스포츠 토토의 경우 입력 데이터에는 다음도 포함됩니다.신규행삽입그리고업데이트스포츠 토토 및/또는오래된행업데이트그리고삭제스포츠 토토.
기본적으로 명령문 수준 스포츠 토토에는 명령문에 의해 수정된 개별 행을 검사할 수 있는 방법이 없습니다. 하지만다음 진술스포츠 토토가 요청할 수 있음전환 테이블영향을 받은 행 세트를 스포츠 토토에 사용할 수 있도록 생성됩니다.행 이후스포츠 토토는 또한 전환 테이블을 요청할 수 있으므로 테이블의 전체 변경 사항은 물론 현재 실행 중인 개별 행의 변경 사항도 볼 수 있습니다. 전이 테이블을 다시 검사하는 방법은 사용 중인 프로그래밍 언어에 따라 다르지만 일반적인 접근 방식은 전이 테이블이 스포츠 토토 함수 내에서 실행된 SQL 명령으로 액세스할 수 있는 읽기 전용 임시 테이블처럼 작동하도록 만드는 것입니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.