-- 문법
CREATE SEQUENCE [시퀀스명]
INCREMENT BY [증감숫자] -- 증가숫자가 양수면 증가 음수면 감소 디폴트는 1
START WITH [시작숫자] -- 시작숫자의 디폴트값은 증가일때: MINVALUE 감소일때: MAXVALUE
NOMINVALUE OR MINVALUE [최솟값] -- NOMINVALUE: 디폴트값 설정, 증가일 때 1, 감소일 때 -1028
-- MINVALUE: 최소값 설정, 시작숫자와 작거나 같아야 하고 MAXVALUE보다 작아야함
NOMAXVALUE OR MAXVALUE [최대값] -- NOMAXVALUE: 디폴트값 설정, 증가일 때 1027, 감소일 때 -1
-- MAXVALUE: 최대값 설정, 시작숫자와 같거나 커야하고 MINVALUE 보다 커야함
CYCLE OR NOCYCLE -- CYCLE 설정시 최대값에 도달하면 최소값 부터 다시시작, NOCYCLE 설정시 최대값 생성 시 시퀀스 생성중지
CACHE OR NOCACHE -- CACHE 설정시 메모리에 시퀀스 값을 미리 할당하고 NOCACHE 설정시 시퀀스값을 메모리에 할당하지 않음
CREATE SEQUENCE EX_SEQ -- 시퀀스 이름 EX_SEQ
INCREMENT BY 1 -- 증감숫자 1
START WITH 1 -- 시작숫자 1
MINVALUE 1 -- 최소값 1
MAXVALUE 1000 -- 최대값 1000
NOCYCLE -- 순환 X
CACHE; -- 메모리에 시퀀스값 미리 할당
EX_TABLE 생성
CREATE TABLE EX_TABLE (BOARD_NUM NUMBER NOT NULL)
시퀀스를 이용한 INSERT
INSERT INTO EX_TABLE(BOARD_NUM) VALUES(EX_SEQ.NEXTVAL);
INSERT INTO EX_TABLE(BOARD_NUM) VALUES(EX_SEQ.NEXTVAL);
BOARD_NUM
1
2
SELECT EX_SEQ.CURRVAL FFROM DUAL; -- 해당 시퀀스 값 조회
SELECT * FROM USER_SEQUENCES -- 전체 시퀀스 조회
-- 문법
ALTER SEQUENCE [시퀀스명]
INCREMENT BY [증가값]
NOMINVALUE OR MINVALUE [최솟값]
NOMAXVALES OR MAXVALUE [최대값]
CYCLE OR NOCYCLE [사이클 설정 여부]
CACHE OR NOCACHE [캐시 설정 여부]
-- 예제
ALTER SEQUENCE EX_SEQ
INCREMENT BY 2
MINVALUE 2
MAXVALUE 10000
CYCLE
NOCACHE;
-- 문법
DROP SEQUENCE [시퀀스명]
-- 예제
DROP SEQUENCE EX_SEQ