시퀀스 관리

시퀀스(Sequence)

시퀀스는 번호를 생성하는 도구이다. 일반적인 테이블의 경우 데이터를 식별하기 위해 고유한 번호를 부여하는데, 이 때 편의를 위해 시퀀스를 사용할 수 있다.

시퀀스 생성

시퀀스의 생성 방법은 다음과 같다

create sequence 이름 [옵션];

옵션을 부여하지 않을 경우 기본 옵션이 적용되며, 기본 값은 다음과 같다

옵션

기본값

설정 방법

설명

min value

1

minvalue 값

시퀀스가 가질 수 있는 최소값

max value

1.000E+28

maxvalue 값 또는 nomaxvalue

시퀀스가 가질 수 있는 최대값

increment

1

increment by 값

시퀀스의 증가치

start value

1

start with 값

시퀀스의 초기 시작값

cycle

N

cycle 또는 nocycle

시퀀스의 순환 여부

order

N

order 또는 noorder

병렬 서버 운용시 요청 순서대로 번호 설정 여부

cache

20

cache 값 또는 nocache

시퀀스의 캐시 크기

시퀀스 사용

시퀀스를 이용하여 번호를 발급하거나 현재 번호를 확인할 수 있다.

시퀀스이름.nextval

시퀀스의 다음 번호를 가져온다. 이 값은 변경할 수 없다.

시퀀스이름.currval

시퀀스의 현재 번호를 가져온다. nextval을 사용한 적이 있는 경우 가져올 수 있다.

시퀀스 조회

생성한 시퀀스를 조회하는 방법은 다음과 같다

select * from user_sequences;

항목 이름을 적어 항목 별로 조회하는 것도 가능하며, 이름을 통해 원하는 항목만 검색할 수도 있다.

select * from user_sequence where SEQUENCE_NAME = '이름';

시퀀스 수정

생성한 시퀀스를 수정할 경우 다음과 같이 작성다.

alter sequence 이름 [옵션];

단, 옵션 중에서 start with 항목은 수정할 수 없다.

시퀀스 삭제

생성한 시퀀스를 삭제하는 명령은 다음과 같다.

drop sequence 이름;

시퀀스 생성 예시

10001부터 50000까지 1씩 번호를 부여하는 시퀀스 생성

CREATE SEQUENCE 이름 
START WITH 10001
INCREMENT BY 1
MAXVALUE 50000

캐시를 사용하지 않는 시퀀스 생성

CREATE SEQUENCE 이름 nocache;

캐시를 부여하고 싶다면 CACHE 10과 같이 사용이 가능하며, 기본 값은 20이다.

순환 기능을 사용하는 5자리 이내의 번호를 부여하는 시퀀스 생성

CREATE SEQUENCE 이름 MAXVALUE 99999 CYCLE;

MINVALUE 1 , START WITH 1, INCREMENT BY 1 등은 생략이 가능하다.

Last updated