트리거란?
INSERT, UPDATE 또는 DELETE문이 TABLE에 대해 행해질때 implicitly 수행되는 프로시저이다.
Data Integrity 유지와 table이 변경될때 필요한 동작을 명시하기 위해 사용된다.
트리거의 장점
복잡한 data integrity를 구현가능. rule이나 check constraint로서 구현하기 힘든 복잡한 처리도 트리거로 구현 가능
- data integrity : DB에 잘못된 데이터가 들어오는 것을 막는방법
역정규화된 데이터 관리가능 때로는 Join을 줄이기위해서 또는 개발을 좀더 쉽게 하기 위해서 역정규화 과정을 수행하게 되는데, 그 결과 테이블간에 논리적으로 같은 의미를 지니는 데이터를 중복해서 저장하기도 한다. 이렇게 데이터가 수정될때 항상 일관성을 갖도록 해주기 위해 트리거를 사용하면 편리하다. 출처
트리거의 단점
트리거는 문서화를 잘 시켜놓지 않는한, 존재유무를 파악하기가 어렵다.
여러 트리거들이 중첩되어 호출되거나 재귀적으로 호출되면 디버깅하기 매우 어렵다.