- 일련번호를 생성하는 데이터베이스 객체
- 자동으로 순차적으로 증가하는 번호를 생성
- 기본키(PK)에서 중복값을 방지하기 위해 주로 사용 (인공키)
NEXTVAL
를 이용하면새로운 번호가 생성
CURRVAL
를 이용하면현재 번호를 확인
- 최초 1번은
NEXTVAL
를 사용해야CURRVAL
도 사용 가능하다.
CREATE SEQUENCE 시퀀스명
START WITH 시작값 -- 생략하면 1, 생성 이후 수정 불가
INCREMENT BY 증가값 -- 생략하면 1
MINVALUE 최소값
MAXVALUE 최대값
CACHE 사용유무 -- NOCACHE 권장
CYCLE 사용유무 -- 생략하면 NOCYCLE, PK에서 사용한다면 NOCYCLE (PK는 하나만 존재하기 때문에)
INCREMENT BY
: 시퀀스 실행 시 증가값
START WITH
: 시퀀스의 시작값
이다. (MINVALUE과 같거나 커야 한다)MINVALUE
: 시퀀스가 시작되는 최소값
MAXVALUE
: 시퀀스가 끝나는 최대값
NOCACHE | CACHE
: NOCACHE(사용안함), CACHE(캐시를 사용하여 미리 값을 할당해 놓아서 속도가 빠르며, 동시 사용자가 많을 경우 유리)NOCYCLE | CYCLE
: NOCYCLE (반복X), CYCLE(시퀀스의 최댓값에 도달 시 최솟값 1부터 다시시작)NOORDER | ORDER
: NOORDER(사용X), ORDER(요청 순서로 값을 생성하여 발생 순서를 보장하지만 조금의 시스템 부하 O)부서 테이블에서 사용할 부서_시퀀스
DROP SEQUENCE DEPARTMENT_SEQ;
CREATE SEQUENCE DEPARTMENT_SEQ
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 100
NOCACHE
NOCYCLE;
시퀀스의 시작값이 1, 증가값 1, 최소값 1, 최대값 100, nocache, 반복하지 않는다.