오라클 트리거 (Trigger) – 문장 레벨 vs 행 레벨 트리거

문장 레벨 트리거와 행 레벨 트리거

br />

FOR EACH ROW 옵션절의 사용 유무에 따라 결정

FOR EACH ROW 옵션절을 사용시 : 행 레벨트리거

문장 트리거

트리거링 사건에 대해 딱 한번만 실행

컬럼의 각 데이터 행을 제어할 수 없다

컬럼의 데이터 값에 관계없이 컬럼에 변화가 일어남을 감지하여 실행되는 트리거

image

행 트리거

컬럼의 각 데이터 행이 변경될 때마다 실행

실제 그 데이터 행의 값을 제어할 수 있는 트리거

실제 값을 수정, 변경 또는 저장하기 위해 사용.

행 트리거에서 실제 데이터를 제어하기 위해 사용하는 인자

‘:old’와 ‘:new’

image

SQL 문에 따른 사용 방법

•INSERT 문의 경우

입력할 데이터의 값이 “:new.컬럼이름”에 저장.

•UPDATE 문의 경우

변경 전의 데이터는 “:old.컬럼이름”에 저장되고, 새로운 데이터 값은 “:new.컬럼이름”에 저장.

•DELETE 문의 경우

삭제되는 컬럼 값이 “:old.컬럼이름”에 저장.

트리거링 시점

image

출처 : http://opensourceforge.tistory.com/273

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다