[Mysql] 트리거 적용

박민균·2021년 6월 15일
0
post-thumbnail

프로젝트를 진행하면서 트리거를 적용할 상황이 생겨서
처음으로 트리거를 사용해봤습니다.

트리거 생성

Mysql Workbench를 사용해 트리거를 생성.
AFTER INSERT -> 해당 테이블이 INSERT된 후에 트리거가 안에 작성한 이벤트가 실행된다.
NEW -> 해당 테이블에 INSERT된 컬럼의 값을 변에 저장할 때 사용

트리거 BODY

1. 리뷰 개수 UPDATE 트리거

UPDATE 될 테이블은 TB_DEVICE,
UPDATE 될 컬럼은 REVIEW_COUNT

조건식에 의해 TB_DEVICE의 DEVICE_NAME과
INSERT된 테이블에서 변수로 저장한 deviceNameTemp 값이 일치하는 곳의
REVIEW_COUNT를 1 증가.

2. 리뷰 평점 UPDATE

UPDATE 될 테이블은 TB_DEVICE,
UPDATE 될 컬럼은 REVIEW_POINT

INSERT된 DEVICE_NAME의 대한 점수들의 평균을 구한 테이블을 JOIN해서
그 결과로 나온 디바이스의 평점을 TB_DEVICE의 REVIEW_POINT에 UPDATE해준다.


트리거 작동 확인

이제 생성된 트리거가 잘 작동하는지 확인해보겠습니다.(* 작성자컬럼에 이메일이 있어서 가림.)

  1. TB_REVIEW 테이블에 다음과 같은 샘플데이터를 삽입.

  2. 다음과 같이 잘 삽입된것을 확인.

  3. 📌 제일 중요한 부분
    UPDATE가 될 테이블인 TB_DEVICE 테이블을 확인하면
    샘플 데이터로 입력한 DEVICE_NAME(Mac Book Pro1)에 대해
    REVIEW_COUNT가 4(총 4개의 샘플데이터 입력) 로 UPDATE 됐고,
    REViEW_POINT가 (4+3+2+1) / 4 = 2.5로 UPDATE가 된 걸 확인할 수 있습니다.

0개의 댓글