-
[Oracle] 시퀀스의 현재값 변경하기개발/Database 2019. 5. 8. 22:17
운영 서버에 있던 DB 오브젝트들을 개발 서버에 옮겨서 테스트하던 중 에러가 났다.
에러 로그를 보니 대체 왜 이렇게 된건지 정확히 파악은 안되지만
시퀀스의 현재 값이 실제 데이터의 Max 값보다 한참 작은 상태라
인서트 쿼리를 실행하면 중복 값이 들어가면서 에러가 나는 상황.....
무식하게 계속 .nextval 로 맞춰주기엔 값이 좀 많이 차이나서 부득이하게 머리를 써서 시퀀스의 현재값을 변경해줘야 했다.
가장 편리한건 역시 그냥 시퀀스 자체를 드롭한 후에 실제 데이터에 맞춰서 다시 생성해주는 것이겠지만
이미 운영 중인 서비스라면 그냥 드롭시키기 무서울 수도 있기에.....
아래처럼 약간의 꼼수(?)를 써서 바꿔주면 해결
123456789--예) 현재 시퀀스값은 20인데 데이터값을 90으로 맞춰야 할 경우ALTER SEQUENCE 시퀀스명INCREMENT BY 70;SELECT 시퀀스명.NEXTVALFROM dual;ALTER SEQUENCE 시퀀스명INCREMENT BY 1;cs '개발 > Database' 카테고리의 다른 글
[Oracle] v$sql 초기화 (메모리 공간 초기화) (0) 2019.08.10 [Oracle] 계정 잠금 해체 (0) 2019.07.20 [MySQL] MySQL에서 ROW_NUMBER 사용하기 (0) 2019.02.19 [postgreSQL] 멀쩡한 컬럼인데 column does not exist 오류가 발생할 때 (0) 2019.01.17 SYS_CONTEXT 함수로 세션정보 추출하기 (0) 2019.01.14 댓글