제3장 트리거의 사용

내용 목차

3.1. 개요
3.1.1. 트리거 구성요소
3.1.2. 트리거 타입
3.2. 트리거 생성

본 장에서는 트리거의 기본 개념과 이를 생성하는 방법을 설명한다.

트리거(Trigger)는 스키마 객체의 일종으로, 데이터베이스가 미리 정해 놓은 특정 조건이 만족되거나 어떤 동작이 수행되면 자동으로 실행되도록 정의한 동작이다. 예를 들어 데이터베이스에 특정한 이벤트가 발생되거나 사용자가 설정한 DDL 문장이 수행될 때 트리거가 실행될 수 있다.

트리거의 내용은 PSM으로 이루어져 있다. 트리거는 이미 정의된 PSM 객체를 호출하여 사용하거나 트리거를 생성할 때 이름 없는 블록을 함께 선언해주는 방식을 모두 이용할 수 있다.

트리거를 생성하는 방법은 다음과 같다.

CREATE [OR REPLACE] TRIGGER 트리거_이름
      {BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON 테이블_이름
      [FOR EACH ROW]
WHEN (조건_제약)
    {[선언부]
BEGIN
     ...
END;} | 
CALL 함수_또는_프러시저_이름

참고

트리거의 문법에 대한 자세한 내용은 "Tibero SQL 참조 안내서"를 참고한다.

다음은 로우 타입의 트리거로, 테이블 DECK_TBL의 COUNT 컬럼에 로우 값이 1000을 초과할 때마다 로그를 기록하도록 작성한 예이다.


CREATE 문장은 Tibero 내부에서는 BEGIN – END 사이의 부분을 PSM으로 인식한다. 이 문장이 컴파일 되면 PSM 스키마 객체가 생성되고 이를 데이터베이스에 저장한다. 만약 컴파일 에러가 발생한다면 정적 뷰를 통해 에러의 내용을 확인할 수 있다.