우노
[MySQL] 트리거(Trigger) 생성 방법 본문
들어가기 앞서,
- 테이블에 새로운 행이 추가될 때 다른 테이블에도 해당 내용을 자동으로 반영하고 싶다면 트리거(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