Dev/DB, SQL
[DB, SQL] MySQL Trigger 트리거의 개념과 예제
헝그리둘기
2025. 10. 16. 10:42
1. 의미
특정 테이블에 INSERT / UPDATE / DELETE 같은 이벤트가 발생했을 때 자동으로 실행되는 SQL 코드 블록
2. 트리거 관련 문법
한번 생성하면 수정이 불가능하여, 삭제 후 재생성해야 한다
-- 생성
CREATE TRIGGER 트리거명
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON 테이블명
FOR EACH ROW
BEGIN
-- 실행할 SQL 문장들
END;
-- 조회
SHOW TRIGGERS;
SHOW CREATE TRIGGER 트리거명;
-- 삭제
DROP TRIGGER 트리거명;
3. 예제
user 테이블에 insert 이벤트가 발생하면, user_log 테이블에 특정 값을 insert 하는 after_user_insert 트리거 생성
CREATE TRIGGER after_user_insert -- 트리거명
AFTER INSERT ON user -- user 테이블
FOR EACH ROW
BEGIN
INSERT INTO user_log (user_id, action, action_time)
VALUES (NEW.id, 'INSERT', NOW()); -- NEW.id 는 user테이블에 insert된 id값을 의미
END