데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요 게시판 답글을 만들고 있는데요
디비는 이렇게 해놨고 제가 하고싶은건 답글이 달렸을 때 원글 바로 밑에 답글이 등록되게 하고 싶습니다
(원래는 b_idx = 40인 원글 1번의 답글이 40이 아니라 36이 되게요..)
머리를 짜내서
UPDATE board
SET b_idx = b_idx(원글의 b_idx) + 1
WHERE b_order > 0
이렇게 쿼리문을 작성해봤는데 primary key가 곂치기 때문에 실행이 안되고 이 쿼리문이 실행되기 전에
답글이 달리는 원글을 제외한 다른 게시물의 b_idx가 먼저 커질 수 있게 쿼리문을 작성해서 실행시켜야
한다고 생각이 드는데 이게 맞는지도 잘 모르겠습니다 ㅠㅠ
서브쿼리를 써야하나요? 도움 부탁드려요 ..ㅠㅠㅠ
글쓴이처럼 구현하시면 안되고 그냥 b_idx 는 키라서 업데이트가 되질 않습니다 충돌이 나게 됩니다.
그대로 두시고...
order by b_group
으로 정렬하셔야 합니다.
글쓰신대로 알려드릴 순 있지만 그럼 나중에 글이 1000개 넘어가면 1번에 글에 누가 댓글을 달면
999개 글을 업데이트 해야하는 상황이 올겁니다.