게시판에서 생성된 게시글 중 제가 원하는 게시글들에 동일한 댓글을 한번에 넣어려고 시도 중인데요.
검색을 해보니 비슷한 사례가 있어서 아래와 같이 디비에서 직접 입력했습니다.
UPDATE
xe_comments
SET
content = '입력하고자 하는 내용'
WHERE
document_srl IN (525566,원하는 문서번호.......)
해당 문서 댓글을 보면 아래와 같이 디비에서 입력한 댓글 내용이 중복해서 등록이 되는데요. 혹시 댓글이 한번만 등록이 되게끔 할 수 없을까요?
문서번호 525566에 등록된 댓글
원하시는 동작이 정확히 무엇인지 모르겠습니다만,
입력하신 쿼리는 해당 글에 이미 달려 있는 댓글의 내용을 일괄 변경하는 쿼리입니다.
즉, 이미 달려 있는 댓글 갯수만큼 중복으로 등록되고,
이미 달려 있는 댓글이 0개라면 아무 일도 일어나지 않습니다.
만약 새 댓글을 작성하시려면 SQL로는 안됩니다.
PHP를 사용해서 댓글 모듈의 insertComment() 함수를 호출하는 방식으로 구현해야
댓글과 관련된 모든 데이터가 일관성있는 상태로 저장됩니다.
예를 들어 새 댓글이 작성되면 시퀀스값도 업데이트되고,
comments_list의 정렬 데이터도 변경되고,
documents에서 해당 글의 댓글 수도 업데이트해 주어야 하는데,
comments 테이블을 임의로 조작하면 이런 부분이 서로 맞지 않아서 댓글이 안 보이거나,
심하면 시퀀스값이 꼬여서 앞으로 댓글 작성이 불가능해질 수도 있습니다.