[SQL] SEQUENCE

📁 SEQUENCE

순차적으로 정수값을 자동 생성하는 데이터베이스 객체

개발자를 대신하여 컴퓨터가 고유 식별자를 자동으로 생성해주는 것

CREATE SEQUENCE 시퀀스명
START WITH 시작값
INCREMENT BY 증가치
MAXVALUE 최대값
MINVALUE 최소값
CYCLE
CACHE 사이즈;

1) 표현식

START WITH

처음 발생시킬 시작값. 명시하지 않을 시 1로 설정

INCREMENT BY

다음 값에 대한 증가치. 명시하지 않을 시 1로 설정

MAXVALUE

발생시킬 최대값. 명시하지 않을 시 최대치로 설정

MINVALUE

발생시킬 최소값. 명시하지 않을 시 1로 설정

CYCLE, NOCYCLE

시퀀스가 최대값으로 증가한 후 MINVALUE 값으로 돌아갈지 에러를 발생시킬지 설정. 명시하지 않을 시 NOCYCLE

CACHE, NOCACHE

메모리상에서 시퀀스 값을 관리할지 설정. 명시하지 않을 시 사이즈 20으로 설정

2) 시퀀스 조회

USER_SEQUENCES

사용자 계정에서 생성된 모든 시퀀스 조회

SELECT * FROM USER_SEQUENCES;

3) 시퀀스 사용

NEXTVAL

처음 시퀀스를 발생시키거나 시퀀스를 증가시킬 때 사용

SELECT 시퀀스명.NEXTVAL FROM DUAL;

CURRVAL

현재 생성된 시퀀스의 값 반환

SELECT 시퀀스명.CURRVAL FROM DUAL;

시퀀스 수정

ALTER SEQUENCE

  • START WITH을 제외한 모든 옵션 변경 가능
  • MINVALUE는 현재 시퀀스값보다 큰 값을 지정할 수 없음
ALTER SEQUENCE 시퀀스명
INCREMENT BY 증가치
MAXVALUE
MINVALUE
NOCYCLE
NOCACHE;