기록공간

3-4-2장. 트리거(Trigger) - B 본문

자격증공부/정보처리기사_필기

3-4-2장. 트리거(Trigger) - B

입코딩 2020. 9. 15. 23:18
반응형

트리거의 개요

트리거는 데이터베이스 시스템에서 데이터의 삽입(Insert), 갱신(Update), 삭제(Delete) 등의 이벤트(Event)가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL이다.

 

  • 트리거는 데이터베이스에 저장되며, 데이터 변경무결성 유지, 로그 메시지 출력 등의 목적으로 사용됨

  • 트리거의 구문에는 DCL을 사용할 수 없으며, DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류가 발생

  • 트리거에 오류가 있는 경우 트리거가 처리하는 데이터에도 영향을 미치므로 트리거를 생성할 때 세심한 주의가 필요

트리거의 구성

트리거는 선언, 이벤트, 시작, 종료로 구성되며, 시작과 종료 구문 사이에는 제어(CONTROL), SQL, 예외(EXCEPTION)가 포함된다.

  • DECLARE : 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의하는 선언부

  • EVENT : 트리거가 실행되는 조건을 명시

  • BEGIN / END : 트리거의 시작과 종료를 의미

  • CONTROL : 조건문 또는 반복문이 삽입되어 순차적으로 처리

  • SQL : DML문이 삽입되어 데이터 관리를 위한 조회, 추가, 수정, 삭제 작업을 수행

  • EXCEPTION : BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리하는 방법을 정의

트리거의 생성

트리거를 생성하기 위해서는 CREATE TRIGGER 명령어를 사용한다.

CREATE [OR RELACE] TRIGGER 트리거명 [동작시기 옵션][동작 옵션] ON 테이블명
REFERENCING [NEW | OLD] AS 테이블명
FOR EACH ROW
[WHEN 조건식]
BEGIN
   트리거 BODY;
END;

 

  • OR REPLACE : 선택적인 예약어이다. 이 예약어를 사용하면 동일한 트리거 이름이 이미 존재하는 경우, 기존의 프로시저를 대체할 수 있음

  • 동작시기 옵션 : 트리거가 실행될 때를 지정한다. 옵션에는 AFTER와 BEFORE가 있음

    • AFTER : 테이블이 변경된 후에 트리거 실행

    • BEFORE : 테이블이 변경되기 전에 트리거 실행

  • 동작 옵션 : 트리거가 실행되게 할 작업의 종류를 지정한다. 옵션에는 INSERT, DELETE, UPDATE가 있음

    • INSERT : 테이블에 새로운 튜플을 삽입할 때 트리거가 실행

    • DELETE : 테이블의 튜플을 삭제할 때 트리거가 실행

    • UPDATE : 테이블의 튜플을 수정할 때 트리거가 실행

  • NEW | OLD : 트리거가 적용될 테이블의 별칭을 지정

    • NEW : 추가되거나 수정에 참여할 튜플들의 집합(테이블)을 의미

    • OLD : 수정되거나 삭제 전 대상이 되는 튜플들의 집합(테이블)을 의미

  • FOR EACH ROW : 각 튜플마다 트리거를 적용한다는 의미

  • WHEN 조건식 : 선택적인 예약어이다. 트리거를 적용할 튜플의 조건을 지정

  • 트리거 BODY

    • 트리거의 본문 코드를 입력하는 부분

    • BEGIN으로 시작해서 END로 끝나는데, 적어도 하나 이상의 SQL문이 있어야 한다. 그렇지 않으면 오류 발생

트리거의 제거

트리거를 제거하기 위해서는 DROP TRIGGER 명령어를 사용한다.

DROP TRIGGER 트리거명;

 

반응형
Comments