• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

generatedValue에서 sequence type 질문

23.02.13 17:36 작성 23.02.13 17:36 수정 조회수 247

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

만약 allocationSize = 50 으로 잡고 애플리케이션을 올렸는데요 값자기 그 id(pk) 값이 1~2 올라가다가 서버가 다운되서 다시 올리면 53인가 부터 시작이잖아요? 그럼 2~52 까지의 pk 값은 안쓰고 계속 올라가는게 맞을까요?

실무에서 궁금합니다.

 

 

 

답변 1

답변을 작성해보세요.

1

안녕하세요. thdi4564님

다시 올라가면 53이 아니라 51부터 시작합니다.

그리고 중간에 사용하지 못한 값은 버리게 됩니다. 그러니까 1,2 51, 52, 53 이런식으로 사용됩니다.

이 부분은 직접 테스트 해보시면 바로 이해가 되실거에요. (시퀀스 자체가 한번 호출에 50씩 증가합니다.)

참고로 시퀀스를 사용할 때는 중간에 항상 이빨이 빠질 수 있다고 가정을 하고 사용해야 합니다. 왜냐하면 1씩 증가하더라도 중간에 특정 데이터가 롤백되면 해당 시퀀스는 사용하지 않고 버리기 때문입니다.

감사합니다.

thdi4564님의 프로필

thdi4564

질문자

2023.02.28

알려주셔서 감사합니다! 인강보지않고 테스트 코드 많이 짜보겠습니다!