CREATE TRIGGER 트리거이름
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON table_name FOR EACH ROW
trigger_body;
[예시]
→ hyoin_name_gender테이블에 UPDATE가 될 때 마다 hyoin_name_gender_audit 테이블에 변경되기전 지금의 이름, 성별, 시간을 INSERT한다(백업과정)
CREATE TABLE test.hyoin_name_gender_audit (
name varchar(16),
gender enum('Male', 'Female'),
modified timestamp
);
-- 트리거 정의
CREATE TRIGGER test.before_update_hyoin_name_gender
BEFORE UPDATE ON test.hyoin_name_gender --> UPDATE를 하기 전에 이 Trigger를 실행
FOR EACH ROW
INSERT INTO test.hyoin_name_gender_audit
SET name = OLD.name, --> 변경되는 지금의 값 | 만약 새로 쓰여지는 값을 쓰고 싶으면 NEW
gender = OLD.gender,
modified = NOW();
-- 트리거 사용 예
UPDATE test.hyoin_name_gender
SET name = 'hyoin'
WHERE name = 'hyoin2';
SELECT * FROM test.hyoin_name_gender_audit;