본문 바로가기

IT/오라클

시퀀스 현재 값 변경

오라클에서 Object를 관리할때...
일반적으로 CREATE때 사용되는 옵션들은 보통 ALTER로도 가능합니다.

그래서 시퀀스도 같을거라 생각했었습니다.

일단 상황은 이렇습니다.
데이터 마이그레이션하던도중에 시퀀스값이 맞지 않아서 ,
AP담당자로 부터 시퀀스 값을 1에서 124475으로 변경해달라는 요청이 왔습니다.

일단 귀찮아서 저는 이렇게 말했지요.

그냥 loop돌려서 nextval 하세요!!!
참 무책임한 말이지요??

한두개면 노가다라도 하지.. 50개의 시퀀스에 대한 변경요청이어서 제가 하게되었네요.

그래서 당연히 저는 이렇게 하였지요.
alter sequence SCOTT.SEQ_EMP start with 124475;

삐!!! 에러 발생 ㅋㅋ

생성할때는 존재했었어도.  start with 라는 옵션은 없어서 에러가 발생되었습니다. 


그럼 어떻게 시퀀스의 현재값을 바꿀까요?
.
.
재 생성해야하나???? ㅋㅋㅋㅋ

생각하면 간단합니다.
그냥 increment by 로 124475 지정하고 nextval한후 124476이 되면 increment by 를 다시 1로 바꾸면 됩니다.

alter sequence SCOTT.SEQ_EMP increment by 124475;

select SCOTT.SEQ_EMP.nextval from dual;

alter sequence SCOTT.SEQ_EMP increment by 1;



Object를 관리할때 웬만하면 삭제보다는 변경을 통하여 
서비스 영향도를 최소하여 작업하는게 좋은것 같습니다.^^


출처 : http://kosate.tistory.com/140

'IT > 오라클' 카테고리의 다른 글

[ORACLE]무결성 제약조건이 위배되었습니다.  (0) 2016.03.21
[ORACLE] SYNONYM(동의어)  (0) 2016.03.17
ORACLE INDEX 정리  (0) 2015.12.15
[Oracle] Lock 확인 및 Lock 해제  (0) 2015.11.25
Oracle PL/SQL 강좌 9. Trigger(트리거)  (0) 2015.11.24