일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 코스트코할인소식
- 고척돔맛집
- 코스트코할인
- 영등포역맛집
- 코딩초보
- 코스트코신상
- seoungsupopupstore
- 용리단길맛집
- 코딩입문
- 구일역맛집
- 양주맛집
- 성수팝업
- 영등포맛집
- 스파르타코딩클럽
- 편의점신상
- 코꼬미
- 고척동맛집
- 코딩공부
- 코딩기초
- 성수팝업스토어
- 코딩
- 코스트코3월첫째주할인상품
- 코스트코할인기간
- 양주가족모임
- 영등포타임스퀘어맛집
- 성수7월팝업
- 성수8월팝업
- 코린이 #코딩 #코딩공부 #코딩독학 #코딩학원 #코딩초보 #비쥬얼스튜디오코드 #비주얼스튜디오코드 #코딩프로그램 #css #html
- 동양미래대학교맛집
- 코스트코4월둘째주할인상품
- Today
- Total
쫑's바른생활
SQL 시퀀스(Sequence) 순서오류 nextval_1,2,3,4, 21_캐시관련 본문
SQL에서 sequence 를 생성하였고, insert를 통해 데이터를 넣어주었다.
데이터를 차례차례 넣으니 sequence로 인해 레코드들의 순서가 매겨졌는데,
급 1 2 3 4 5에서 21이 되었다. (아래 예제에서 BNO 2는 delete로 삭제 테스트 진행한 상황입니다.)
이렇게 갑자기 6으로 생성되지 않고, 21로 생성됨.
왜그런가 서치를 하다보니, 신빙성 있는 글을 발견하였다.
<원인(추측)>
sequence 생성내용을 조회해보면 아래와 같이 캐시 정보가 나온다.
캐시가 20으로 설정되어있어, 데이터 서버(?)를 껐다 키게되면 저절로 캐시가 20을 먹고 순서가 21로 설정되는 듯 하다.
default 값이 캐시 20으로 설정된다.
value값이 지금 생성된 레코드 순서의 다음 순서를 말하는 것 같은데,
21이 생성되어 22로 되었다. ( 41로 된 경우도 발생. 이 때에도 20캐시를 먹어서 그런듯)
<해결방법>
1. 처음부터 sequence를 생성할 때에 nocache로 설정
>>>>
CREATE SEQUENCE 시퀀스이름 NOCACHE;
2. 21이후 숫자라도 캐시를 먹지않기 위해 nocache로 수정
>>>>
ALTER SEQUENCE 시퀀스이름 NOCACHE;
3. sequence 삭제 후 다시 생성(초기화)
>>>>
DROP SEQUENCE 시퀀스이름;
SELECT 시퀀스이름.nextval FROM dual;
(더미테이블로 시퀀스 순서확인, 원하는순서로 계속 확인하여 증가시키기. 필자는 6을 원하여 5까지 확인 후 insert 실행)
'개발일지 > 코린이' 카테고리의 다른 글
부적합한 열유형 : 1111 오류 (0) | 2023.09.04 |
---|---|
인텔리제이(InteliJ) 로컬호스트 한글깨짐 오류발생=해결 (0) | 2023.07.30 |
[코딩 초보 개발일지] 상세_01. css 배우기_float 와 clear (0) | 2023.04.03 |