현재PostgreSQLprovides one built in trigger function,suppress_drendant_updates_trigger
, 데이터가 변경되었는지 여부에 관계없이 항상 업데이트를 수행하는 일반 동작과 달리 행의 데이터를 실제로 변경하지 않는 업데이트를 방지합니다. (이 정상적인 동작은 점검이 필요하지 않으며 특정 경우에도 유용하기 때문에 업데이트가 더 빨리 실행됩니다.)
이상적으로는 일반적으로 레코드의 데이터를 실제로 변경하지 않는 업데이트를 실행하지 않아야합니다. 중복 업데이트는 특히 변경할 인덱스가 많고 결국 진공 청소기의 공간이있는 경우 상당한 불필요한 시간이 소요될 수 있습니다. 그러나 클라이언트 코드에서 이러한 상황을 감지하는 것이 항상 쉬운 것은 아니거나 심지어 가능한 것은 아니며,이를 감지하기위한 표현을 작성하는 것이 오류가 발생할 수 있습니다. 대안은 사용하는 것입니다suppress_redundant_updates_trigger
, which will skip updates that don't change the data. You should use this with care, however. 트리거는 각 레코드에 대해 작지만 사소한 시간이 걸리므로 업데이트에 영향을받는 대부분의 레코드가 실제로 변경되면이 트리거를 사용하는 것이 실제로 업데이트가 느려집니다..
thesuppress_drandant_updates_trigger
함수는 다음과 같은 테이블에 추가 할 수 있습니다.
트리거 생성 z_min_update TableName에 대한 업데이트 전에 각 행에 대해 Execute Procedure ruppress_drupt_updates_trigger ();
In most cases, you would want to fire this trigger last for each row. 이름 순서대로 발사를 유발한다는 점을 염두에두면 테이블에 가질 수있는 다른 토토 캔의 이름으로 오는 토토 캔 이름을 선택합니다.
토토 캔 생성에 대한 자세한 내용은 참조하십시오.CREATE TRIGGER.