전산실짬밥/Oracle

오라클 시퀀스 임의 값 넣기

정훈승 2013. 2. 21. 11:34

실제 DB와 개발용 DB를 따로 두는 경우 발생하는 일이다.

실제 DB는 데이터가 지금 이 순간에도 계속쌓이고 있다.

개발용 DB의 시퀀스가 당연히 실제 DB의 시퀀스보다 낮다.

 

개발을 하기 앞서 실제 DB와 개발용 DB의 싱크를 맞춰야 한다.

이 과정에서 시퀀스정보가 누락되는 경우가 있는데 이때 시퀀스를 맞춰주지 않으면

개발환경에서 에러가 난다.

 

테이블명이 ADMIN_LOG

시퀀스 명이 ADMINLOG_IDX 라고 치자.

 

select (select max(idx) ADMIN_LOG from dual)-ADMINLOG_IDX.nextval from dual;

위와 같이 입력해주면 얼마만큼의 차이가 나는지 값이 나온다.

 

만약 160445 의 값이 나왔다면

 

alter sequence ADMINLOG_IDX increment by 160445;

 

select ADMINLOG_IDX.nextval from dual;

 

alter sequence ADMINLOG_IDX increment by 1;

이렇게 차례대로 날려주면된다.