강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
트리거(TRIGGER) 변경
조회 : 5,932  


트리거(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)이어야 한다.

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1636


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
큐브리드