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으로 다시 시작하는 문제가 아직 해결되지 모샣ㅆ다..ㅠㅠㅠ 이것도 해결하면 다시 글을 올려야겠다.
댓글