DB

Mysql Trigger

Raconer 2023. 12. 6. 23:03
728x90

Mysql Trigger

테이블에서 어떤 이벤트가 발생했을 때 자동으로 실행되는 것을 말한다

사용법

  • 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 줄 변수를 사용하여 읽을 수 있다
    • old - 예전 데이터 즉, delete 로 삭제 된 데이터 또는 update 로 바뀌기 전의 데이터
    • new - 새 데이터 즉, insert 로 삽입된 데이터 또는 update 로 바뀐 후의 데이터
-- Trigger 리스트 출력
SHOW TRIGGERS;

-- Trigger 삭제
DROP trigger trigger_test;

-- Trigger 생성
DELIMITER $$ -- 구분선과 같은것
    CREATE TRIGGER trigger_name
        {BEFORE | AFTER} {INSERT | UPDATE| DELETE }
            ON table_name FOR EACH ROW
    BEGIN
        -- 트리거 내용
    END
DELIMITER ;

예제

DELIMITER $$
  CREATE TRIGGER trigger_test
      AFTER UPDATE
          ON test_table FOR EACH ROW
      BEGIN
          IF NEW.PARENT = 'TEST' THEN 
          INSERT INTO other_table (CREATED_AT, UPDATED_AT, NAME)
          VALUES( NOW(), NOW(), NEW.parent);
      END IF;    
  END;
$$
DELIMITER ;

출처: https://inpa.tistory.com/entry/MYSQL-📚-트리거 [Inpa Dev 👨‍💻:티스토리]

728x90

'DB' 카테고리의 다른 글

Mysql Procedure  (0) 2024.02.03
Index Hint  (0) 2024.01.20
Redis 기본 명령어  (0) 2023.08.18
DB 테스트 용 데이터 대량 만들기_TIP  (0) 2023.08.03
데드락  (0) 2023.07.05