오라클 트리거 (Trigger) – 문장 레벨 vs 행 레벨 트리거
문장 레벨 트리거와 행 레벨 트리거
br />
FOR EACH ROW 옵션절의 사용 유무에 따라 결정
FOR EACH ROW 옵션절을 사용시 : 행 레벨트리거
문장 트리거
트리거링 사건에 대해 딱 한번만 실행
컬럼의 각 데이터 행을 제어할 수 없다
컬럼의 데이터 값에 관계없이 컬럼에 변화가 일어남을 감지하여 실행되는 트리거
행 트리거
컬럼의 각 데이터 행이 변경될 때마다 실행
실제 그 데이터 행의 값을 제어할 수 있는 트리거
실제 값을 수정, 변경 또는 저장하기 위해 사용.
행 트리거에서 실제 데이터를 제어하기 위해 사용하는 인자
‘:old’와 ‘:new’
SQL 문에 따른 사용 방법
•INSERT 문의 경우
입력할 데이터의 값이 “:new.컬럼이름”에 저장.
•UPDATE 문의 경우
변경 전의 데이터는 “:old.컬럼이름”에 저장되고, 새로운 데이터 값은 “:new.컬럼이름”에 저장.
•DELETE 문의 경우
삭제되는 컬럼 값이 “:old.컬럼이름”에 저장.
트리거링 시점
최신 댓글