Programming/RDBMS
트리거(Trigger)
두잇츄우
2025. 4. 6. 23:59
데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
데이터에 변경이 생겼을 때 자동적으로 발생되는 프로시저
- INSERT, UPDATE, DELETE 등을 한 번에 감지하도록 설정 가능 (MySQL 불가)
- row 단위가 아니라 statement 단위로 tirgger가 실행될 수 있도록 할 수 있다
- MySQL은 FOR EACH STATEMENT 사용 불가능
- trigger를 발생시킬 디테일한 조건을 지정할 수 있다 (MySQL 불가)
주의사항
- 소스코드로는 발견할 수 없는 로직이기 때문에 어떤 동작이 일어나는지 파악하기 어렵고 문제가 생겼을 때 대응하기 어렵다
- 가시적이지 않아 개발, 관리, 문제 파악이 어렵다
- 과도한 트리거 사용은 DB에 부담을 주고 응답을 느리게 만든다
- 디버깅이 어렵다
- 문서 정리 중요!