############################## 트리거 ##############################
트리거는 INSERT, UPDATE , DELETE 이벤트를 캡쳐하여 처리 하기 위하여 생성합니다.
- 규약
INSERT : NEW.컬럼명
UPDATE : NEW.컬럼명, OLD.컬럼명
DELETE : OLD.컬럼명
- 생성 방식
AFTER INSERT : INSERT 처리된후
BEFORE INSERT : INSERT 되기전
=> TB_NAME에 INSERT 발생시 TB_NAME_STAT 에 등록 개수 누적 집계 하기 위한 트리거임
DELIMITER $$
USE `c_bbs`$$
DROP TRIGGER `트리거명`$$
CREATE
TRIGGER `트리거명` AFTER INSERT on `TB_NAME`
FOR EACH ROW BEGIN
UPDATE TB_NAME_STAT SET reg_cnt = reg_cnt + 1 WHERE the_date=NEW.mem_level;
END;
$$
DELIMITER ;
=> TB_NAME에 UPDATE 발생시 TB_NAME_STAT 값을 변경하기 위한 트리거
: 이전 레벨 차감 및 신규 레벨 수치 증가
DELIMITER $$
USE `c_bbs`$$
DROP TRIGGER `트리거명`$$
CREATE
TRIGGER `트리거명` AFTER UPDATE on `TB_NAME`
FOR EACH ROW BEGIN
-- 변경되기전 레벨의 등록수 차감
UPDATE TB_NAME_STAT SET reg_cnt = reg_cnt - 1 WHERE the_date=OLD.mem_level;
-- 신규로 들오온레벨의 등록수 증가
UPDATE TB_NAME_STAT SET reg_cnt = reg_cnt + 1 WHERE the_date=NEW.mem_level;
END;
$$
DELIMITER ;
=> TB_NAME에 DELETE 발생으로 인한 수치 TB_NAME 차감
DELIMITER $$
USE `c_bbs`$$
DROP TRIGGER `트리거명`$$
CREATE
TRIGGER `트리거명` AFTER DELETE on `TB_NAME`
FOR EACH ROW BEGIN
-- data 삭제에 따른 수치 차감
UPDATE TB_NAME_STAT SET reg_cnt = reg_cnt - 1 WHERE the_date=OLD.mem_level;
END;
$$
DELIMITER ;