[Trigger] 댓글의 등록/삭제에 따른 게시글 댓글 수 증감 기능 만들기

beans·2022년 11월 29일
0

댓글은 Comment 테이블에 등록한다. 댓글은 게시글에 대한 댓글이 등록되는 것이기 때문에 게시글이 없을 경우 댓글 또한 존재할 수 없다. 그러므로 댓글 레코드는 게시글의 정보를 항상 포함하여야 한다.

게시글에 대한 정보는 Board 테이블의 레코드에서 고유한 숫자 값을 지니는 기본키인 idx 로 사용할 수 있다. 그리고 Comment 테이블에는 parentIdx 필드가 존재한다. Board 테이블의 idx 필드 데이터를 Comment 테이블의 parentIdx 에 저장하여 게시글에 대한 고유 번호를 저장할 수 있다. 이를 이용해 트리거를 생성한다.

1 새 트리거 생성

Comment → Triggers 마우스 우클릭, Create New Trigger

2 트리거 이름 설정

3 트리거 코드 작성

  • on_comment_insert
    CREATE DEFINER=`cube`@`%` TRIGGER on_comment_insert
    AFTER INSERT
    ON Comment FOR EACH ROW
    BEGIN 
    	UPDATE Board SET Board.commentCnt = Board.commentCnt + 1
    	WHERE Board.idx = NEW.parentIdx ;
    END
  • on_comment_delete
    CREATE DEFINER=`cube`@`%` TRIGGER on_comment_delete
    AFTER DELETE
    ON Comment FOR EACH ROW
    BEGIN 
    	UPDATE Board SET Board.commentCnt = Board.commentCnt - 1
    	WHERE Board.idx = OLD.parentIdx ;
    END

4 트리거 저장

Ctrl + S 로 저장

0개의 댓글