블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

공지사항

최근에 올라온 글

이관 및 시스템을 구축하다보면

테이블의 컬럼에 시퀀스를 사용하였는데 테이블에 들어있는 MAX값이

시퀀스의 Last값과 차이가 있을 때 중복이 발생하거나 시퀀스의 Last값을 줄여 놓아야

할 필요가 있을 때가 있다. 다음과 같이 사용하면 시퀀스를 Drop하지 않고도 시퀀스의

Last값을 조정할 수 있다.(Alter Sequence 명령이 있다면 좋을텐데...)

-----------------------------------------------------------------------------

1. 시퀀스Last값과 컬럼MAX값의 갭이 크지 않으면서 시퀀스Last값을 증가시킬

    필요가 있을 경우 다음과 같이 nextval을 증가시킨다.
    SQL> select 시퀀스명.nextval

                from dual connect by level <= (12514  -       10001);
                                                           -----          -----
                                                        컬럼MAX값    시퀀스Last값


2. 시퀀스Last값과 컬럼MAX값의 갭이 크다면 increment값으로 증가/감소 시키기

2-1. 시퀀스 정보 조회
      SQL> select * from user_sequences

               where sequence_name ='시퀀스명';

 

2-2. 차이값 구하기
     SQL> select 컬럼MAX값 - 시퀀스Last값 from dual;

     -- 결과

     1671677-169
     -----------
            -19882

 

3. 차이값만큼 increment를 setting
   SQL> alter sequence 시퀀스명 increment by -19882;

 

4. increment를 setting한 만큼의 값으로 Nextval을 이용하여 증가시킴
   SQL> select 시퀀스명.nextval from dual;

 

5. increment를 다시 원래의 증가값으로 setting
   SQL> alter sequence 시퀀스명 increment by 1;

 

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함