
순서
– 자동으로 증가(감소)되는 값을 제공하는 객체
– 테이블과 독립적으로 동작하기 때문에 여러 테이블에서 공유 가능
– 사용되는 곳
. 기본 키로 설정할 컬럼이 존재하지 않는 경우
. 자동으로 증가하는 값이 필요한 경우
사용형식)
CREATE SEQUENCE 시퀀스이름
(START WITH n) --시작 값 설정 생략하면 MINVALUE 값이 설정
(INCREMENT BY n) --증가(감소) 값
(MINVALUE n|NOMINVALUE) --최소값 설정.default는 NOMINVALUE이며 값은 1
(MAXVALUE n|NOMAXVALUE) --최대값 설정.default는 NOMAXVALUE이며 사용할 수 있는 값은 10^27
(CYCLE|NOCYCLE) --최대(최소)값까지 도달 후 다시 시퀀스 생성할지 여부 default는 NOCYCLE
(CACHE n|NOCACHE) --캐쉬에 생성해놓을 시퀀스 갯수 default는 CACHE 20
(ORDER|NOORDER) --정의한 대로 시퀀스 생성을 보증할 지 여부. default는 NOORDER
** 시퀀스의 현재 값 다음 값을 나타냅니다.
. sequencename.NEXTVAL: 시퀀스의 다음 값 반환(시퀀스 값이 증가할 때 사용)
. sequencename.CURRVAL: 시퀀스의 현재 값을 반환합니다.
>> 시퀀스가 생성된 후 첫 번째 명령은 “sequencename.NEXTVAL”이어야 합니다.
>> NEXTvAL, VURRVAL은 시퀀스의 의사 열이라고 합니다.
사용예)
CREATE SEQUENCE seq_sample
START WITH 10;
SELECT seq_sample.NEXTVAL FROM DUAL;
SELECT seq_sample.CURRVAL FROM DUAL;

사용예) 분류테이블에 다음 자료를 삽입하시오.
---------------------------------
LPROD_ID LPORD_GY LPROD_NM
---------------------------------
시퀀스사용 p501 농산물
" P502 수산물
" P503 임산물
.(시퀀스 생성:LPROD_ID에 사용)
CREATE SEQUENCE seq_lprod
START WITH 10;
.(자료 삽입)
INSERT INTO LPROD(LPROD_ID,LPROD_GU,LPROD_NM)
VALUES(seq_lprod.NEXTVAL,'p501','농산물');
INSERT INTO LPROD(LPROD_ID,LPROD_GU,LPROD_NM)
VALUES(seq_lprod.NEXTVAL,'p502','수산물');
INSERT INTO LPROD(LPROD_ID,LPROD_GU,LPROD_NM)
VALUES(seq_lprod.NEXTVAL,'p503','임산물');
