|
 |
트리거(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. 트리거 정의 변경 |
|
트리거 정의에서 STATUS와 PRIORITY 옵션에 대해 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)이어야 한다. |
|