[oracle]오라클 시퀀스(sequence) 생성 및 삭제 :: 개발/일상_Mr.lee

[oracle]오라클 시퀀스(sequence) 생성 및 삭제

Posted by Mr.mandu.
2019. 12. 3. 23:24 개발/DB

안녕하세요.

오라클 시퀀스에대해 포스팅하려고 합니다.

시퀀스의 기능은 워낙 유명해서 모두 알고 계실거라고 생각합니다.


시퀀스란?

연속적인 일련번호를 만들어주는 기능 입니다.


주로 사용자의 번호나 사번 등으로 주로 활용됩니다.

간단하게 사용 문법만 기재하겠습니다.


문법

create sequence 시퀀스 이름

increment by n             ------> 시퀀스 증가 값(기본 1),    -1로 설정하면 감소하는 시퀀스임

start with 1                   ------> 시퀀스 시작 값

maxvalue 100000       ------> 시퀀스 최대값(다른옵션 : nomaxvalue)

minvalue 1                    ------> cycle일 경우 새로 시작되는 값(다른옵션 : nominvalue)

cycle                            ------> 시퀀스 번호 순환 설정 (다른옵션 : nocycle)

cache 10;                     ------> 시퀀스 생성 속도를 위한 캐싱 지정


문법에 cache부분이 있습니다.

이부분에 대하여 설명드리겠습니다.

만약 대량의 데이터가 한꺼번에 입력되는 경우 

아주 짧은 시간이라 하더라고 시퀀스 실행속도가 약간의 대기 시간이 발생할 수 있습니다.

이때 미리 메모리상에 시퀀스 번호를 두고 사용하는 것 입니다.


시퀀스 생성

create sequence seq_test

increment by 1

start with 1

maxvalue 100000

minvalue 1

cycle

cache 10;


시퀀스 테스트

select seq_test.nextval from dual;


위의 쿼리는 시퀀스의 다음값을 불러옵니다.

현재값은 seq_test.currval 로 확인가능 합니다.


시퀀스 삭제

drop sequence seq_test;


간단하게 시퀀스의 생성 및 삭제에 대해 적어두었습니다.

저도 가끔 필요할때 보고 사용할 예정입니다.

모두 고생하세요.