토픽 177 / 201·SQL 및 데이터베이스 객체
트리거 (Trigger)
트리거 (Trigger)
특정 테이블에 대한 INSERT, UPDATE, DELETE 이벤트 발생 시 자동으로 실행되는 데이터베이스 프로시저로, 데이터 무결성 유지와 비즈니스 규칙 강제에 사용
목적: 자동 무결성 검증, 감사 로깅, 파생 데이터 갱신, 비즈니스 규칙 강제
특징: 이벤트 기반 자동 실행, 트랜잭션 내 실행, BEFORE/AFTER/INSTEAD OF
구성요소
- •이벤트(Event): INSERT, UPDATE, DELETE
- •시점(Timing): BEFORE(사전 검증/변환), AFTER(감사/연쇄), INSTEAD OF(뷰 DML 대체)
- •단위(Granularity): 행 단위(FOR EACH ROW), 문 단위(FOR EACH STATEMENT)
- •OLD/NEW: OLD(변경 전 값), NEW(변경 후 값)
활용 사례: 감사 로그(변경 이력 자동 기록), 데이터 검증(복잡한 제약), 파생 컬럼 자동 계산, 복제/동기화
장점: 자동 실행, 무결성 보장, 감사 추적, 중앙 집중 규칙
단점: 디버깅 어려움, 성능 영향(연쇄 트리거), 숨겨진 로직, 트리거 폭주(Cascading) 위험
비교: 트리거(자동/이벤트) vs 프로시저(수동/호출) vs 제약조건(선언적/단순)
연관: 저장 프로시저, 무결성, 감사 로깅, DML, 데이터 일관성