시퀀스 개념
- 지정된 기준에 의해 순차적으로 증가하거나 감소하는 숫자를 반환하는 오브젝트
- 시퀀스 생성 시 Cache 옵션을 설정하면 해당 Cache 값만큼 미리 메모리에 할당된다.
- 시퀀스는 10.3 이상 버전부터 가능
시퀀스 생성
CREATE SEQUENCE [seq_name]
START WITH 1
INCREMENT BY 1
MAXVALUE 1000
CYCLE
CACHE 10;
INCREMENT BY n
: 2로 설정하면 2씩 증가한다. (-1도 가능)
START WITH n
MAXVALUE n
NOMAXVALUE
: 9223372036854775806
MINVALUE n
NOMINVALUE
: - 9223372036854775806
CYCLE
/ NOCYCLE
: 최대값을 할당한 후 다시 해당 시퀀스에서 다른 번호를 할당해야 할 때 CYCLE의 경우 START WITH부터 다시 시작, NOCYCLE: 번호 할당 불가능
CACHE n
/ NOCACHE
: CACHE가 10일 경우 NEXTVAL을 호출하면 마지막 번호 이후 10개를 메모리에 미리 할당한다.
시퀀스 변경 및 삭제
- 시퀀스는 설정된 옵션의 대부분을 변경할 수 있다.
ALTER SQUENCE [name] MAXVALUE 1000;
DROP SEQUENCE [name];
- 정보 조회
SHOW CREATE SEQUENCE;
시 START WITH 와 같은 옵션의 설정값을 확인할 수 있다
시퀀스의 사용
- 다음 번호 채번 :
NEXT VALUE FOR [name]
, NEXTVAL([name])
, [name].nextval
- 현재 번호 채번 :
PREVIOUS VALUE FOR [name]
, LASTVAL([name])
, [name].currval