DB (ORACLE OBJECT SEQUENCE)

감자·2025년 3월 14일

SEQUENCE

순차적으로 정수 값을 자동으로 생성하는 객체로 자동 번호 발생기 역할을 함

CREATE SEQUENCE 시퀀스명
① [START WITH 숫자] 🡪 처음 발생시킬 시작 값, 기본값 1
② [INCREMENT BY 숫자] 🡪 다음 값에 대한 증가치, 기본값 1
③ [MAXVALUE 숫자 | NOMAXVALUE] 🡪 발생시킬 최대값, 10의 27승-1까지 가능
④ [MINVALUE 숫자 | NOMINVALUE] 🡪 발생시킬 최소값, -10의 26승
⑤ [CYCLE | NOCYCLE] 🡪 시퀀스가 최대값까지 증가 완료 시
CYCLE은 START WITH 설정 값으로 돌아감
NOCYCLE은 에러 발생
⑥ [CACHE | NOCACHE] 🡪 CACHE는 메모리 상에서 시퀀스 값 관리
기본값 20

예시

CREATE SEQUENCE SEQ_EMPID
START WITH 300
INCREMENT BY 5
MAXVALUE 310
NOCYCLE
NOCACHE;

SELECT SEQ_EMPID.CURRVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;
SELECT SEQ_EMPID.CURRVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;
SELECT SEQ_EMPID.NEXTVAL FROM DUAL;

SEQUENCE

SELECT * FROM USER_SEQUENCES;

NEXTVAL/CURRCAL 사용 가능 여부

SEQUENCE

시퀀스 수정 시 CREATE에 사용한 옵션을 변경 가능
단 START WITH 값 변경은 불가하기 때문에 변경하려면 삭제 후 다시 생성해야 함

표현식

ALTER SEQUENCE SEQ_EMPID
INCREMENT BY 10
MAXVALUE 400
NOCYCLE
NOCACHE;
Sequence SEQ_EMPID이(가) 변경되었습니다.

0개의 댓글