배트맨 토토는 데이터베이스가 수행해야 하는 사양입니다. 특정 기능이 실행될 때마다 자동으로 특정 기능을 실행합니다. 유형의 작업이 수행됩니다. 배트맨 토토는 둘 다에 부착할 수 있습니다. 테이블과 뷰.
테이블에서 배트맨 토토는 이전 또는 이전에 실행되도록 정의할 수 있습니다. 나중에삽입, 업데이트, 또는삭제작업, 수정된 행당 한 번 또는 행당 한 번SQL진술.업데이트또한 배트맨 토토는 실행되도록 설정할 수 있습니다. 특정 열이 언급된 경우SET의 절업데이트성명. 배트맨 토토는 다음에 대해 실행될 수도 있습니다.잘라내기문장. 배트맨 토토 이벤트가 발생하면 배트맨 토토의 함수는 적절한 시간에 호출되어 이벤트를 처리합니다.
뷰에서는 대신 실행되도록 배트맨 토토를 정의할 수 있습니다.삽입, 업데이트, 또는삭제작업.대신배트맨 토토는 각 행에 대해 한 번씩 실행됩니다. 뷰에서 수정해야 합니다. 그것은 책임이다 필요한 수정을 수행하기 위한 배트맨 토토 기능 기본 기본 테이블에 추가하고 적절한 경우 수정된 행은 뷰에 표시됩니다. 보기에 대한 배트맨 토토는 다음을 수행할 수 있습니다. 또한 당 한 번씩 실행되도록 정의됩니다.SQL문, 이전 또는 이후삽입, 업데이트, 또는삭제작업.
배트맨 토토 기능은 배트맨 토토 자체보다 먼저 정의되어야 합니다. 생성될 수 있습니다. 배트맨 토토 함수는 다음과 같이 선언되어야 합니다. 인수를 사용하지 않고 유형을 반환하는 함수배트맨 토토. (배트맨 토토 기능은 입력을 받습니다. 특별히 전달된를 통해배트맨 토토데이터구조, 형식이 아님 일반 함수 인수.)
적절한 배트맨 토토 기능이 생성되면 배트맨 토토는 다음과 같이 설정됩니다.만들기 방아쇠. 동일한 배트맨 토토 기능을 여러 용도로 사용할 수 있습니다. 배트맨 토토합니다.
포스트그레SQL둘 다 제공행당배트맨 토토 및문별배트맨 토토. 행별 배트맨 토토를 사용하면 배트맨 토토 함수는 각 행에 대해 한 번씩 호출됩니다. 배트맨 토토를 실행한 명령문의 영향을 받습니다. 대조적으로, 문별 배트맨 토토는 적절한 경우 한 번만 호출됩니다. 영향을 받는 행 수에 관계없이 문이 실행됩니다. 그 진술로. 특히, 0에 영향을 미치는 진술은 행은 여전히 적용 가능한 실행을 초래합니다. 문별 배트맨 토토. 이 두 가지 유형의 배트맨 토토는 때때로 라고 불리는행 수준배트맨 토토 및문 수준각각 배트맨 토토됩니다. 배트맨 토토 에잘라내기다음에서만 정의될 수 있습니다. 진술 수준. 보기에서 이전이나 이후에 실행되는 배트맨 토토는 다음과 같습니다. 명령문 수준에서만 정의되어야 하며, 실행되는 배트맨 토토는 대신에삽입, 업데이트또는삭제5월 행 수준에서만 정의되어야 합니다.
배트맨 토토는 실행 여부에 따라 분류됩니다.이전, 이후, 또는대신작업. 이들은 로 지칭됨이전배트맨 토토,이후배트맨 토토 및대신각각 배트맨 토토됩니다. 명령문 수준이전이전에 자연적으로 발사를 유발합니다. 명령문은 모든 작업을 시작하지만 명령문 수준이후다음의 마지막에 화재를 유발합니다. 성명. 이러한 유형의 배트맨 토토는 테이블에 정의될 수 있습니다. 또는 조회수. 행 수준이전발화를 유발함 특정 행이 연산되기 직전, 행 수준이후마지막에 화재를 유발합니다 진술의 (그러나 진술 수준 이전에)이후배트맨 토토). 이러한 유형의 배트맨 토토는 테이블에 정의되어야 합니다. 행 수준대신 의배트맨 토토는 뷰에서만 정의될 수 있으며 실행될 수 있습니다. 뷰의 각 행이 다음 작업이 필요한 것으로 식별되는 즉시 수술을 받다.
문별 배트맨 토토에 의해 호출되는 배트맨 토토 함수는 다음과 같아야 합니다. 항상 돌아오세요NULL. 배트맨 토토 기능 행별 배트맨 토토에 의해 호출되면 테이블 행(값 유형힙튜플) 부름에 집행자, 그들이 선택한다면. 행 수준 배트맨 토토가 실행되기 전에 실행되었습니다. 작업에는 다음과 같은 선택 사항이 있습니다.
돌아올 수 있습니다.NULL건너뛰려면 현재 행에 대한 작업입니다. 이는 실행자에게 다음을 지시합니다. 배트맨 토토를 호출한 행 수준 작업을 수행하지 않습니다. (특정 항목의 삽입, 수정 또는 삭제 테이블 행).
행 수준의 경우삽입그리고업데이트배트맨 토토만, 반환됨 행은 삽입되거나 대체될 행이 됩니다. 행이 업데이트되고 있습니다. 이를 통해 배트맨 토토 기능을 수정할 수 있습니다. 삽입되거나 업데이트되는 행입니다.
행 수준이전그렇게 하는 배트맨 토토 이러한 행동을 유발할 의도가 없으면 주의해야 합니다. 전달된 것과 동일한 행을 결과로 반환합니다(즉, 그만큼신규행삽입그리고업데이트배트맨 토토,오래된행삭제배트맨 토토).
행 수준대신배트맨 토토는 다음과 같습니다. 돌아오거나NULL그것을 나타내기 위해 뷰의 기본 테이블에서 데이터를 수정하지 않았습니다. 또는 전달된 뷰 행을 반환해야 합니다(신규행삽입그리고업데이트작업 또는오래된행삭제작업). Null이 아닌 반환 값은 배트맨 토토가 필요한 작업을 수행했음을 알리는 데 사용됩니다. 뷰의 데이터 수정. 이로 인해 증가할 명령의 영향을 받는 행 수입니다. 을 위한삽입그리고업데이트작업, 배트맨 토토는 다음을 수정할 수 있습니다.신규행을 반환하기 전에. 이것은 반환된 데이터를 변경합니다.삽입 돌아오는 중또는업데이트 반환 중및 뷰가 정확히 동일한 데이터를 표시하지 않을 때 유용합니다. 제공되었습니다.
다음 이후에 실행된 행 수준 배트맨 토토의 경우 반환 값이 무시됩니다. 작업을 수행하여 반환할 수 있습니다.NULL.
동일한 이벤트에 대해 둘 이상의 배트맨 토토가 정의된 경우 동일한 관계인 경우 배트맨 토토는 알파벳 순서로 실행됩니다. 배트맨 토토 이름으로. 의 경우이전그리고대신배트맨 토토, 각 배트맨 토토에서 반환된 수정 가능성이 있는 행이 입력이 됩니다. 다음 배트맨 토토로 이동합니다. 있다면이전또는대신배트맨 토토 반환NULL, 해당 행에 대한 작업이 중단되고 후속 배트맨 토토는 실행되지 않습니다(해당 행에 대해).
배트맨 토토 정의는 부울을 지정할 수도 있습니다.언제조건을 확인하기 위해 테스트됩니다. 방아쇠를 발사해야 하는지 여부. 행 수준에서 배트맨 토토는언제조건은 이전을 검사할 수 있습니다. 및/또는 행 열의 새 값. (문 수준 배트맨 토토는 다음을 가질 수도 있습니다.언제조건, 하지만 이 기능은 그들에게 그렇게 유용하지는 않습니다.) a이전배트맨 토토, 그언제조건은 함수가 실행되기 직전에 평가됩니다. 실행되었으므로 다음을 사용하여언제아님 동일한 조건에서 테스트한 것과는 크게 다릅니다. 배트맨 토토 기능의 시작. 그러나,이후배트맨 토토, 그언제조건은 행 업데이트가 발생한 직후 평가되며, 이벤트가 배트맨 토토를 실행하기 위해 대기열에 있는지 여부를 결정합니다. 진술 끝. 그래서 언제이후배트맨 토토의언제조건이 반환되지 않음 사실, 이벤트를 대기열에 넣거나 이벤트를 다시 가져올 필요가 없습니다. 명령문 끝의 행. 이로 인해 속도가 크게 향상될 수 있습니다. 많은 행을 수정하는 문에서 배트맨 토토가 필요한 경우 몇 행에 대해 해고됩니다.대신 의배트맨 토토는 지원하지 않습니다.언제조건.
일반적으로 행 수준이전배트맨 토토 삽입될 데이터를 확인하거나 수정하는 데 사용됩니다. 또는 업데이트되었습니다. 예를 들어,이전배트맨 토토는 현재 시간을타임스탬프열 또는 그 두 가지를 확인하려면 행의 요소는 일관됩니다. 행 수준이후배트맨 토토는 전파하는 데 가장 현명하게 사용됩니다. 다른 테이블에 대한 업데이트 또는 일관성 검사 수행 다른 테이블. 이러한 노동 분업의 이유는 다음과 같습니다.이후배트맨 토토는 그것이 확실할 수 있습니다 행의 최종 값을 확인하는 동안 a이전배트맨 토토를 실행할 수 없습니다. 다른 것이 있을 수도 있습니다이전그 후에 실행이 시작됩니다. 당신이 배트맨 토토를 수행할 특별한 이유가 없습니다.이전또는이후, 그이전케이스가 더 효율적입니다. 작업에 대한 정보는 저장될 때까지 저장될 필요가 없습니다. 진술 끝.
배트맨 토토 함수가 SQL 명령을 실행하면 다음은 명령이 배트맨 토토를 다시 실행할 수 있습니다. 이것을 캐스케이딩이라고 합니다. 배트맨 토토. 캐스케이드 수에는 직접적인 제한이 없습니다. 수준. 계단식 배열로 인해 재귀가 발생할 수 있습니다. 동일한 배트맨 토토 호출; 예를 들어,삽입배트맨 토토는 다음 명령을 실행할 수 있습니다. 동일한 테이블에 추가 행을 삽입하여삽입배트맨 토토가 다시 실행됩니다. 그것은 무한을 방지하는 배트맨 토토 프로그래머의 책임 그러한 시나리오에서는 재귀가 발생합니다.
배트맨 토토가 정의될 때 인수를 지정할 수 있습니다 그것을 위해. 배트맨 토토에 인수를 포함하는 목적 정의는 유사한 다른 배트맨 토토를 허용하는 것입니다 동일한 함수를 호출하기 위한 요구 사항. 예를 들면, 거기에는 일반화된 배트맨 토토 기능이 될 수 있습니다. 두 개의 열 이름을 인수하고 현재 사용자를 하나에 넣고 다른 쪽의 현재 타임스탬프입니다. 이 글을 제대로 쓴 것은 배트맨 토토 함수는 특정 테이블과 독립적입니다. 배트맨 토토링 중입니다. 따라서 동일한 기능을 사용할 수 있습니다.삽입적절한 열이 있는 테이블의 이벤트, 거래 테이블의 기록 생성을 자동으로 추적하기 위해 예를 들어. 다음과 같은 경우 마지막 업데이트 이벤트를 추적하는 데에도 사용할 수 있습니다. 로 정의됨업데이트배트맨 토토.
배트맨 토토를 지원하는 각 프로그래밍 언어에는 고유한 배트맨 토토 입력 데이터를 배트맨 토토에 사용할 수 있게 만드는 방법 기능. 이 입력 데이터에는 배트맨 토토 이벤트 유형이 포함됩니다. (예:삽입또는업데이트) 및 나열된 모든 인수 안에배트맨 토토 생성. 행 수준의 경우 배트맨 토토, 입력 데이터에는 다음도 포함됩니다.신규행삽입그리고업데이트배트맨 토토 및/또는오래된행업데이트그리고삭제배트맨 토토. 명령문 수준 배트맨 토토는 현재 개인을 검사할 수 있는 방법이 없습니다. 문에 의해 수정된 행입니다.