Trigger
트리거(Trigger)란 DML(INSERT, UPDATE, DELETE )문이 테이블에 수행됐을 때, 자동으로 수행되는 프로시져이다.
BEFORE : DML문이 실행되기 전에 트리거 실행
AFTER : DML문이 실행된 후 트리거 실행
triggering-event는 insert, delete, update 중에서 한 개 이상 올 수 있음.
[Referencing OLD AS {변경전 값을 참조하는 변수명} NEW AS {변경 후 값을 참조하는 변수명}]
:OLD 는 참조 전 열의 값(변화전 값)
:NEW는 참조 후 열의 값(변화된 값)
FOR EACH ROW : 해당 옵션이 있으면, 행 트리거가 된다.
행 트리거(Row-Level Triggers) : 컬럼의 각각 행의 데이터 변화가 생길때마다 실행되며, 그 데이터 행의 실제값을 제어 가능
문장 트리거(Statement-Level Triggers) : 트랜잭션내에서 한번만 수행되며, 컬럼의 각 데이터 행을 제어 불가
특징
트리거 내에서는 commit, rollback을 수행할 수 없다.
트리거는 각 테이블에 최대 3개까지 가능하며, 이미 정의된 작업에 대해 다른 트리거를 정의하면 기존의 것을 대체한다.
뷰나 임시 테이블은 참조할 수 있으나, 생성 할 수 없다.
트리거 동작은 트리거를 삭제할 때까지 작동한다.
상태 확인
상태변경 및 재 컴파일
해당 트리거의 활성/비활성 상태 변경
해당 테이블에 있는 모든 트리거의 활성/비활성 상태 변경
트리거 내용이 변경되거나, 제대로 작동안하는 경우 재컴파일
삭제
참조
Last updated