mysql 궁금 질문드립니다.
본문
현재 그누보드 기본 게시판에서 게시글을 등록하면 동일한 내용이 한번에 10개씩 등록하게 처리 해놨습니다.
10개 등록하면
wr_id 값이 자동으로 1~10번까지 들어갑니다.
여기서 궁금한점
10개 자동 등록후
wr_id값 6번에는 다른 내용을 다시 채우고
wr_id 값을 하나씩 밀리게 하는 쿼리가 있을가요?
예를 들어 게시글 하나 등록하면
동일한 내용 10개 삽입
wr_id = 1 : 동일값
wr_id = 2 : 동일값
wr_id = 3 : 동일값
wr_id = 4 : 동일값
wr_id = 5 : 동일값
wr_id = 6 : 동일값
wr_id = 7 : 동일값
wr_id = 8 : 동일값
wr_id = 9 : 동일값
wr_id = 10 : 동일값
이 이후 wr_id = 6번에 다른값을 다시 삽입
그 다음 wr_id 값을 하나씩 밀리게 하는 방법
wr_id = 1 : 동일값
wr_id = 2 : 동일값
wr_id = 3 : 동일값
wr_id = 4 : 동일값
wr_id = 5 : 동일값
wr_id = 6 : 다른값
wr_id = 7 : 동일값
wr_id = 8 : 동일값
wr_id = 9 : 동일값
wr_id = 10 : 동일값
wr_id = 11 : 동일값
이게 쿼리로 가능할가요?
답변 5
불가능할거 같습니다,
wr_id는 고유값으로 자동증가됩니다,
이걸 억지로 수정한다면 할 수야 있겠지만 복잡할 뿐더러
글이 많아지면 나머지를 그걸 다 쿼리로 밀어내기식 수정을 해야 하는데,,,ㅋ
그렇게 할 이유가 없어집니다,
wr_id와 관련된 코멘트, 첨부파일 등등
wr_id는 아버지입니다,
그래서 코멘트에는 아버지가 누군지 기록하고요
만약 아버지가 바뀐다면? ㅋ
애비없는 자식이 되겠죠
지금 하려는 이유와 목적을 먼저 말해야 알기 쉽고 나은방법이 있는지 생각해볼 수 있습니다,
wr_id 값에 값이 없다면 insert 혹시 있다면 변경처리하는 update 처리해주셔야 하는 부분이고
별도로 밀리게 처리하는 할수 없습니다.
인덱스에 대한 이해가 필요해 보이네요.
한번 읽어보세요.
https://velog.io/@hyoeunla/Database-Primary-Index-vs-Secondary-Index
https://www.google.com/search?q=what+is+primary+index
그리고.. 질의하신 내용에 답을 드리자면..
상황에 따라 가능합니다.
혹시 게시되는 순서를 바꾸고 싶다면
wr_num 를 추가하고 그 뒤에 건들은 +1 해주는 방법이 있습니다.
게시물 순서는 wr_num 값으로 정렬됩니다.
의도는 알겠으나 무엇이 목적인지를 설명하는 것이 더 필요해보입니다
처음 11개를 등록해놓고 가운데 것을 insert가 아니라 update하면 간단한데요
wr_id값을 변경하는 것은 가능하지만 맨 나중에 등록한 것을 가운데 나오도록 순서를 바꾸는 것이 목적이라면 그렇게해서는 안됩니다