시퀀스 관리
시퀀스(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