오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-03 06:06
관리 메뉴

우노

[MySQL] 트리거(Trigger) 생성 방법 본문

Database/MySQL

[MySQL] 트리거(Trigger) 생성 방법

운호(Noah) 2023. 9. 15. 14:29

들어가기 앞서,

  • 테이블에 새로운 행이 추가될 때 다른 테이블에도 해당 내용을 자동으로 반영하고 싶다면 트리거(Trigger)를 사용해 해결할 수 있습니다.
  • 데이터베이스의 트리거(Trigger)는 특정 이벤트(예: 삽입, 갱신, 삭제 등)가 발생할 때 자동으로 실행되는 데이터베이스 내의 저장 프로시저입니다.

존재하는 트리거 확인

SHOW TRIGGERS;
  • Trigger_name : 트리거의 이름
  • Event : 트리거가 작동하는 이벤트 유형 (INSERT, UPDATE, DELETE)
  • Table : 트리거가 연결된 테이블의 이름
  • Statement : 트리거의 실행 내용 (BEGIN과 END 사이의 SQL 문장)
  • Timing : 트리거가 실행되는 시기 (BEFORE 또는 AFTER)
  • Created : 트리거가 생성된 날짜 및 시간
  • sql_mode : 트리거 실행에 영향을 미치는 SQL 모드

트리거 생성 예제 코드

CREATE TRIGGER after_insert_modems
AFTER INSERT ON modems
FOR EACH ROW
BEGIN
    INSERT INTO rtu_v1_conn_status (imei, serial_number, status, updated_at, installed)
    VALUES (NEW.imei, NEW.serial_number, 'UNKNOWN', '1970-01-01 00:00:00', '0');
END;
  • CREATE TRIGGER
    • 트리거의 이름을 지정합니다.
  • BEFORE 또는 AFTER
    • 트리거가 언제 실행될지를 지정합니다
    • BEFORE는 이벤트가 발생하기 전에 실행되고, AFTER는 이벤트가 발생한 후에 실행됩니다.
  • INSERT, UPDATE, DELETE
    • 트리거가 어떤 이벤트(삽입, 갱신, 삭제)를 감지할지를 지정합니다.
  • TABLE_NAME
    • 트리거가 연결될 테이블의 이름을 지정합니다.
  • FOR EACH ROW
    • 각 행에 대해 트리거를 실행할지 여부를 지정합니다.
  • BEGIN 과 END 사이
    • 트리거의 실행 내용을 정의합니다.
    • 트리거 내에서 NEW라는 예약어를 사용하여 트리거가 실행된 이벤트로부터 새로 추가된 행의 값을 사용할 수 있습니다.

'Database > MySQL' 카테고리의 다른 글

[MySQL] Error 1267: Illegal mix of collations 해결 방법  (0) 2023.09.13
Comments