많은 트리거를 사용하는 사람들이 사용자가 작성한 트리거 함수와 관련이 있지만PostgreSQL사용자 정의 트리거에서 직접 사용할 수있는 몇 가지 내장 트리거 토토 꽁 머니을 제공합니다. 이것들은에 요약되어 있습니다.표 9.107. (추가 내장 트리거 함수가 존재하는데, 이는 외국의 주요 제약 조건과 지연된 인덱스 제약 조건을 구현하는 추가 내장 트리거 토토 꽁 머니이 존재합니다. 사용자가 직접 사용할 필요가 없으므로 여기에 문서화되어 있지 않습니다.)
트리거 생성에 대한 자세한 내용은 참조트리거 만들기.
표 9.107. 내장 트리거 기능
function 설명 예제 사용 |
---|
하지 않는 업데이트 작업을 억제합니다. 자세한 내용은 아래를 참조하십시오.
|
자동으로 a
|
자동으로 a
|
thesuppress_drandant_updates_trigger
함수,로드 레벨로 적용될 때업데이트 전
트리거, 실제로 행의 데이터가 실제로 변경되지 않는 업데이트를 방지합니다. 이것은 데이터가 변경되었는지 여부에 관계없이 항상 물리적 행 업데이트를 수행하는 일반 동작을 무시합니다. (이 정상적인 동작은 점검이 필요하지 않으며 특정 경우에도 유용하기 때문에 업데이트가 더 빨리 실행됩니다.)
이상적으로는 실제로 레코드의 데이터를 변경하지 않는 업데이트를 실행하지 않아야합니다. 중복 업데이트는 특히 변경할 인덱스가 많고 결국 진공 청소기의 공간이있는 경우 상당한 불필요한 시간이 소요될 수 있습니다. 그러나 클라이언트 코드에서 이러한 상황을 감지하는 것이 항상 쉬운 것은 아니거나 심지어 가능한 것은 아니며,이를 감지하기위한 표현을 작성하는 것이 오류가 발생할 수 있습니다. 대안은 사용하는 것입니다suppress_drandant_updates_trigger
는 데이터를 변경하지 않는 업데이트를 건너 뛸 수 있습니다. 그러나 이것을주의해서 사용해야합니다. 방아쇠는 각 레코드에 대해 작지만 사소한 시간이 걸리므로 업데이트에 의해 영향을받는 대부분의 레코드가 실제로 변경되면이 트리거를 사용하여 업데이트가 평균적으로 느리게 실행됩니다..
thesuppress_drandant_updates_trigger
함수는 다음과 같은 테이블에 추가 할 수 있습니다.
트리거 생성 z_min_update TableName에 대한 업데이트 전에 각 행에 대해 EXECUTE 함수 suppress_drups_updates_trigger ();
대부분의 경우 각 행에 대해이 트리거를 마지막으로 발사하여 행을 변경하려는 다른 트리거를 무시하지 않도록해야합니다. 이름 순서로 발사를 유발한다는 점을 염두에두고, 따라서 테이블에 가질 수있는 다른 트리거의 이름으로 오는 트리거 이름을 선택합니다. (따라서“Z”예제의 접두사.)
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면