본문 바로가기

DB/DB

SQL Developer - 시퀀스 중간값이 없는 문제 해결

오라클 Sequence

  • 시퀀스에는 캐시값이 존재 → 오라클 서버를 닫았다가 켜면 캐시값이 일정 자리를 차지하고 있었기 때문에 중간 번호가 존재하지 않을 수 있음 해결 방법

1. CACHE를 사용하지 않는 것 (NOCACHE) : 시퀀스 값을 미리 할당하지 않으므로 중간 번호가 존재

ALTER SEQUENCE MVC_BOARD_SEQ(시퀀스 명) NOCACHE;
→ cache값이 0으로 변경

2. ORDER 옵션 추가 : 시퀀스를 순차적으로 채우므로 중간 번호가 존재

ALTER SEQUENCE MVC_BOARD_SEQ(시퀀스 명) ORDER;
→ order가 n에서 y로 변경
  • 비어있는 중간번호로 되돌리기 위해서는 시퀀스의 현재값을 변경할 필요가 있음 해결방법
    1. 시퀀스를 DROP한 후 다시 CREATE
    2. 시퀀스의 증가값을 변경해서 최대값으로 맞춘 후 다시 원래 증가값으로 변경
ALTER SEQUENCE MVC_BOARD_SEQ(시퀀스 명) INCREMENT BY -11(이전 최대값으로 맞추기 위한 값);
→ 시퀀스 값 변경 후 데이터 추가를 해 시퀀스 실행 필요
ALTER SEQUENCE MVC_BOARD_SEQ INCREMENT BY 1;
→ 원래 시퀀스 증가값으로 변경

'DB > DB' 카테고리의 다른 글

MariaDB 설치  (0) 2022.11.11