Learning
토픽 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, 데이터 일관성