트리거를 정의할 때 상관명을 사용하여 대상 테이블의 컬럼 값에 접근할 수 있다. 상관명은 실제적으로 트리거를 부르는 데이터베이스 연산에 의해 영향을 받는 인스턴스를 나타낸다. 상관명은 트리거의 조건 영역이나 실행 영역에도 기술할 수 있다.
상관명의 종류에는 new, old, obj가 있으며 이러한 상관명은 인스턴스 트리거에서 INSERT, UPDATE, DELETE의 이벤트 타입을 가지고 있는 트리거에서만 사용할 수 있다.
상관명의 사용은 아래 표와 같이 트리거 조건 영역에 정의된 이벤트 시점에 의해 더욱 제한된다.
|
BEFORE |
AFTER or DERERRED |
---|---|---|
INSERT |
new |
obj |
UPDATE |
obj |
obj |
DELETE |
obj |
NA |
상관명 |
대표 속성 값 |
---|---|
obj |
인스턴스의 현재 속성 값을 나타낸다. 인스턴스가 갱신되거나 삭제되기 전에 속성값에 접근하기 위해서 사용한다. 그리고 인스턴스가 갱신되거나 삽입된 후에 속성 값에 접근하기 위해 사용한다. |
new |
삽입이나 갱신 연산에 의해 제시되는 속성값을 나타낸다. 새로운 값은 인스턴스가 실제적으로 삽입되거나 갱신되기 전에만 접근할 수 있다. |
old |
갱신 연산의 완료 전에 존재하던 속성값을 나타낸다. 이 값은 트리거가 수행되는 동안만 유지된다. 트리거가 종료되면 old 값은 잃어버리게 된다. |