[DB] 데이터베이스 트리거(Trigger)란?

데이터베이스 트리거(Trigger)란?

 

데이터베이스 트리거는 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 트리거는 INSERT, DELETE, UPDATE 같은 DML(데이터 조작 언어)의 데이터 상태 관리를 자동화하는데 사용된다.

 

트리거(Trigger)는 말 그대로 방아쇠이다. 방아쇠를 당기면 총에서 총알이 발사되듯, 트리거가 실행되면 일련의 작업을 수행하게 된다. 

 

 

트리거 유형

트리거는 크게 행 트리거와 문장 트리거가 존재한다.

 

  • 행 트리거 : 테이블 안의 영향을 받은 행 각각에 대해 실행된다. 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 줄 변수를 사용하여 읽을 수 있다.
  • 문장 트리거 : INSERT, UPDATE, DELETE 문에 대해 한 번만 실행된다.

 

또한 트리거는 다음과 같은 속성을 갖는다.

  • BEFORE 또는 AFTER  : 트리거가 실행되는 시기를 지정한다.
  • INSTEAD OF : 트리거를 원래 문장 대신 수행한다.
  • WHEN : 트리거를 시작하는 조건식을 지정한다.

일반적으로 트리거는 다음의 3 가지 경우에 시작된다. 트리거는 SELECT 문에 의한 데이터 검색에 영향을 미칠 수 없다.

  • INSERT (새로운 행 삽입)
  • UPDATE (기존 행의 변경) / UPDATE OF (기존 행의 특정 열 변경)
  • DELETE (기존 행 삭제)

 

트리거의 장점

  •  데이터 무결성 강화(참조 무결성)
  • 업무 규칙의 설정
  • 검사 기능의 확장

 

 

트리거의 단점

  • 유지보수의 어려움
  • 예상치 못한 오류

 

반응형

댓글

Designed by JB FACTORY