본문 바로가기
ERRORS

[ERRORS][Oracle] sequence 순차 증가 오류 / 1, 2에서 갑자기 21로 다음 숫자가 넘어가는 경우

by Jelly 젤리 2022. 4. 22.

sequence를 생성하고 테이블에 썼던 데이터를 모두 지운 뒤 다시 데이터를 추가할 때,

1,2,3,.. 잘 가다가 다 지우고 다시 테이블에 글을 쓰니 21로 등록이 되는 경우가 너무 많았다.

 

왜 이럴까?

찾아보니.

cache라는 것이 저장되어있었다.

이 놈.. 이놈이 나를 괴롭게 하였다.

 

이걸 확인하는 쿼리문은 다음과 같다

sequence 정보를 확인하는 쿼리: SELECT SEQUENCE_NAME, MIN_VALUE, MAX_VALUE, INCREMENT_BY, LAST_NUMBER FROM USER_SEQUENCES;

 

cache size를 확인하는 쿼리: SELECT SEQUENCE_NAME, CACHE_SIZE FROM USER_SEQUENCES WHERE SEQUENCE_NAME='BOARD_SEQ'

 

cache를 안사용하겠다고 하는 쿼리!: ALTER SEQUENCE BOARD_SEQ NOCACHE

 

아예 애초에 시퀀스를 만들 때 설정하는 쿼리문:

CREATE SEQUENCE (시퀀스명)
START WITH (처음 시작 번호)
INCREMENT BY (증가값)
MAXVALUE (최대값)
MINVALUE (최소값)
CACHE  (캐쉬 -> NOCACHE)
CYCLE (반복여부 -> NOCYCLE)


이렇게 해서.. 21로 갑자기 뛰는 것은 막아놨다..

 

 

그러나 아직도 해결 못한것은

테이블에 있는 데이터를 다 지우고 다시 올릴 때 1이 아니라 마지막으로 지웠던 글번호 + 1으로 다시 시작하는 문제가 아직 해결되지 모샣ㅆ다..ㅠㅠㅠ 이것도 해결하면 다시 글을 올려야겠다.

728x90

댓글