1) 정의
- 자동 번호 발생기 역할을 하는 객체
- 순차적으로 정수 값을 자동 생성해준다
2) 옵션
- CREATE SEQUENCE 시퀀스명
- [INCREMENT BY 숫자] -- 다음 값에 대한 증가치, 생략하면 자동 1이 기본
- [START WITH 숫자] -- 처음 발생시킬 값 지정, 생략하면 자동 1이 기본
- [MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대 값 지정(10의 27승)
- [MINVALUE 숫자 | NOMINVALUE] -- 발생시킬 최소 값 지정(-10의 26승)
- [CYCLE | NOCYCLE] -- 값 순환 여부
- [CACHE 바이트크기 | NOCACHE] -- 캐쉬 메모리 기본 값은 20바이트, 최소는 2바이트
CREATE SEQUENCE SEQ_EMPID
START WITH 300
INCREMENT BY 5
MAXVALUE 310
NOCYCLE
NOCACHE;
3) 시퀀스명.
- 시퀀스명.CURRVAL : 해당 시퀀스가 가지고 있는 CURRENT VALUE(현재값) 리턴
- 시퀀스명.NEXTVAL : 해당 시퀀스가 가질 NEXT VALUE(다음값) 리턴
- NEXT VALUE 요청 없이 CURRENT VALUE를 요청하면 정의되어 있지 않다는 오류 발생
4) 주의 사항
- START WITH 값은 변경 불가능이므로 해당 값을 변경하려면 DROP으로 삭제 후 다시 생성
5) 많이 사용하는 방법
- 인위적 주식별자로 SEQUENCE 객체를 이용한 넘버링(NOT NULL, UNIQUE)
CREATE SEQUENCE SEQ_EID
START WITH 300
INCREMENT BY 1
MAXVALUE 10000
NOCYCLE
NOCACHE;
INSERT
INTO EMPLOYEE
VALUES
(
SEQ_EID.NEXTVAL, '홍길동', '660101-1111111', 'hong_gd@greedy.com', '01012345678'
, 'D2', 'J7', 'S1', 5000000, 0.1, 200, SYSDATE, NULL, DEFAULT
);