전산실짬밥/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;
이렇게 차례대로 날려주면된다.