Certificate/정보처리기사

[3과목 데이터베이스 구축] SQL 활용 - 115. ⭐ 트리거 (Trigger)

S_sun 2025. 11. 19. 11:58
  • 데이터베이스 시스템에서 데이터의 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
  • 데이터베이스에 저장되며, 데이터 변경 및 무결성 뮤지, 로그 메시지 출력 등을 목적으로 사용됨
  • DCL 사용불가
    • DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류 발생
  • 오류가 있을 경우 트리거가 처리하는 데이터에도 영향을 미치므로 트리거 생성시 세심한 주의 필요

1. 트리거 구성

  • DECLARE : 트리거 명칭, 변수 및 상수, 데이터 타입을 정의하는 선언부
  • EVENT : 트리거가 실행되는 조건 명시
  • BEGIN / END : 트리거의 시작과 종료
  • CONTROL : 조건문 또는 반복문이 삽입되어 순차적으로 처리됨
  • SQL : DML문이 삽입되어 데이터 관리를 위한 조회, 추가, 수정, 삭제 작업을 수행
  • EXCEPTION : BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리하는 방법 정의

2. 트리거 생성

CREATE [OR REPLACE] TRIGGER 트리거명 동작시기 동작 ON 테이블명
[REFERENCING NEW | OLD AS 테이블명]
[FOR EACH ROW [WHEN 조건식]]
BEGIN
	트리거 BODY;
END;
  • CREATE TRIGGER 명령어 사용
  • 동작시기 : 트리거가 실행될 때 지정
    • AFTER : 테이블이 변경된 후에 트리거 실행
    • BEFORE : 테이블이 변경되지 건에 트리거 실행
  • 동작 : 트리거가 실행되게 할 작업의 종류 지적
    • INSERT : 테이블에 새로운 튜플을 삽입할 때 트리거 실행
    • DELETE : 테이블의 튜플을 삭제할 때 트리거 실행
    • UPDATE : 테이블의 튜플을 수정할 때 트리거 실행
  • NEW / OLD : 트리거가 적용될 테이블의 별칭 지정
    • NEW : 추가되거나 수정에 참여할 튜플들의 집합(테이블)을 의미
    • OLD : 수정되거나 삭제 전 대상이 되는 튜플들의 집합(테이블)을 의미
  • WHEN 조건식 : Optional / 트리거를 적용할 튜플의 조건 지정
  • 트리거 BODY
    • 트리거 본문 코드를 기록하는 부분
    • BEGIN과 END 사이에 적어도 하나의 SQL 문이 있어야 함

3. 트리거 제거

  • DROP TRIGGER 트리거명;

 

 

📖 Reference
 

2023 시나공 정보처리기사 필기 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

728x90
반응형