SEQUENCE란?
- 순차적으로 일정한 간격의 숫자(번호)를 발생시키는 객체
- PRIMARY KEY가 지정된 컬럼에 사용하기 좋다
작성법
CREATE SEQUENCE 시퀀스이름
[STRAT WITH 숫자]
[INCREMENT BY 숫자]
[MAXVALUE 숫자 | NOMAXVALUE]
[MINVALUE 숫자 | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE 바이트크기 | NOCACHE]
- START WITH
처음 발생시킬 시작 값 지정, 생략하면 1이 기본
- INCREMENT BY
다음 값에 대한 증가치, 생략하면 1이 기본
- MAXVALUE | NOMAXVALUE
발생시킬 최댓값 지정
- MINVALUE | NOMINVALUE
최솟값 지정
- CYCLE | NOCYCLE
값 순환 여부 지정
- CACHE | NOCACHE
캐쉬메모리 기본값은 20바이트, 최솟값은 2바이트
시퀀스의 캐쉬메모리는 할당된 크기만큼 미리 다음 값들을 생성해 저장해둔다
사용법
시퀀스명.NEXTVAL
- 다음 시퀀스 번호를 얻어옴 (INCREMENT BY 만큼 증가된 수)
- 단, 생성 후 처음 호출된 시퀀스인 경우 START WITH에 작성된 값이 반환됨
시퀀스명.CURRVAL
- 현재 시퀀스 번호를 얻어옴
- 단, 시퀀스가 생성 되자마자 호출할 경우 오류 발생 (마지막으로 호출한 NEXTVAL 값을 반환하기 때문)
변경법
- 기본적으로 CREATE 작성법과 같으나 START WITH는 제외
ALTER SEQUENCE 시퀀스이름
[INCREMENT BY 숫자]
[MAXVALUE 숫자 | NOMAXVALUE]
[MINVALUE 숫자 | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE 바이트크기 | NOCACHE]