1. 트리거(Trigger)란?
1.1 개념
- 트리거(Trigger)는 특정 이벤트가 발생할 때 자동으로 실행되는 데이터베이스 객체입니다.
- INSERT, UPDATE, DELETE와 같은 DML 문이 실행될 때 특정 로직을 수행할 수 있습니다.
1.2 트리거의 주요 특징
- 자동 실행: 특정 이벤트가 발생하면 자동으로 실행됨
- 무결성 유지: 데이터의 일관성을 유지하는 데 도움을 줌
- 비즈니스 로직 적용: 특정 조건을 만족할 때 추가적인 작업 수행 가능
2. 트리거의 종류
2.1 실행 시점에 따른 분류
- BEFORE 트리거
- DML 작업이 실행되기 전에 동작
- 예) 데이터를 삽입하기 전에 값 검증
- AFTER 트리거
- DML 작업이 완료된 후 동작
- 예) 데이터가 삽입된 후 감사 로그 기록
- INSTEAD OF 트리거
- 뷰(View)에서 DML 작업을 수행할 때 실행
- 예) 업데이트할 수 없는 뷰에 대한 삽입 또는 수정 작업 처리
2.2 이벤트 유형에 따른 분류
- ROW 레벨 트리거
- 테이블의 각 행(Row)에 대해 실행
FOR EACH ROW 옵션을 사용하여 정의
- STATEMENT 레벨 트리거
- 한 번의 DML 문이 실행될 때 단 한 번 실행
FOR EACH ROW 옵션이 없음
3. 트리거 생성
3.1 기본 문법
CREATE OR REPLACE TRIGGER 트리거명
{ BEFORE | AFTER | INSTEAD OF } { INSERT | UPDATE | DELETE }
ON 테이블명
[ FOR EACH ROW ]
BEGIN
-- 실행할 SQL 문
END;
/
3.2 예제