SQL/PL. SQL
트리거(trigger)
행복하게사는게꿈
2020. 4. 25. 13:41
트리거란?
테이블에 어떤 이벤트가 발생했을 때, 자동으로 사용자가 정의한 PL/SQL 명령을 실행 할 수 있는 구문
트리거 Syntax
CREATE OR REPLACE TRIGGER 트리거명 [BEFORE | AFTER]
EVENT(INSERT, DELETE, UPDATE 등) ON 테이블명
FOR EACH ROW // 행 트리거
DECLARE
AFTER_CODE VARCHAR2(5); // 선언부(사용할 변수 선언)
BEGIN
IF INSERTING THEN
SELECT 변환 후 코드 값
INTO AFTER_CODE
FROM 코드 매핑 테이블
WHERE 변환전 코드 값 := NEW.코드 컬럼
INSERT INTO 로그 테이블명( 컬럼명1, 컬럼명2, ..., 컬럼명N) VALUES ( VALUES1, VALUES2, ...);
ELSIF DELETING THEN ..
ELSE
IF UPDATING('코드1 컬럼')
OR UPDATING('코드2 컬럼')
THEN
...
ELSIF UPDATING('텍스트 컬럼')
THEN
...
ELSIF UPDATING
THEN
...
END IF;
END IF;
EXCEPTION // 오류처리
WHEN NO_DATA_FOUND THEN ... // 등록된 코드에 매핑 코드가 없을 경우
WHEN DUP_VAL_ON_INDEX THEN ... // 테이블 등록 시 동일 PK 데이터 존재
END