CUBRID 2008 R4.1 기초강좌
트리거(TRIGGER) 변경 1 0 40,242

by 큐브리드 RENAME TRIGGER ALTER TRIGGER [2009.04.27]


트리거(TRIGGER) 변경
1. 트리거 이름 변경
트리거의 이름은 RENAME 구문의 TRIGGER 예약어를 이용해서 변경한다.
1) 구문

RENAME TRIGGER old_trigger_nameASnew_trigger_name [ ; ]

old_trigger_name : 트리거의 현재 이름을 입력한다.
new_trigger_name : 변경할 트리거의 이름을 지정한다.
2) 예제
RENAME TRIGGER medal_trigger AS medal_trig;
3) 주의사항
트리거 이름은 모든 트리거 사이에서 유일해야 한다. 하지만 데이터베이스 내의 테이블 이름과 같은 이름을 가질 수는 있다.
만약 테이블 트리거의 이름을 변경하려면, 트리거의 소유자이거나, 해당 트리거가 있는 테이블에 대해 ALTER 권한이 부여되어 있어야 한다. 사용자 트리거는 트리거의 소유자만 이름을 변경할 수 있다.
2. 트리거 정의 변경
트리거 정의에서 STATUSPRIORITY 옵션에 대해 ALTER 구문을 이용하여 변경할 수 있다. 만약 트리거의 다른 부분에 대해 변경(이벤트 대상 또는 조건 표현식)이 필요하면, 트리거를 삭제한 후, 재생성해야 한다.
1) 구문

ALTER TRIGGER trigger_name  trigger_option [ ; ]

trigger_option :
STATUS { ACTIVE | INACTIVE }
PRIORITY key

trigger_name : 변경할 트리거의 이름을 지정한다.
trigger_option : - STATUS { ACTIVE | INACTIVE } : 트리거의 상태를 변경한다
- PRIORITY key : 우선순위를 변경한다
2) 예제
CREATE TRIGGER medal_trig STATUS ACTIVE
BEFORE UPDATE ON participant
IF new.gold < 0 OR new.silver < 0 OR new.bronze < 0
EXECUTE REJECT;

ALTER TRIGGER medal_trig STATUS INACTIVE;
ALTER TRIGGER medal_trig PRIORITY 0.7;
3) 주의사항
같은 ALTER TRIGGER 문 내에서는 한 개 옵션만 기술할 수 있다.
만약 테이블 트리거를 변경하려면, 해당 트리거의 소유자이거나, 해당 트리거가 있는 테이블에 대해 ALTER 권한이 부여되어 있어야 한다.
사용자 트리거를 변경하기 위해서는 반드시 해당 트리거의 소유자여야 한다. PRIORITY 옵션과 같이 기술하는 key는 반드시 음이 아닌 부동 소수점 값(non-negative floating point value)이어야 한다.

- 강좌 URL : http://www.gurubee.net/lecture/2058

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입