시퀀스는 DBMS 차원에서 유일한 정수 값이 필요할 때 사용한다.먼저 시퀀스를 생성하는 구문이다.
CREATE SEQUENCE TEST_SEQ
MINVALUE 1 -- 기본값은 1
MAXVALUE 10 -- 기본값은 1E+28
NOCYCLE -- CYCLE로 지정되면 값이 최대값을 넘을 서면 다시 값은 최소값에서 시작됨, 기본값은 NOCYCLE로 값이 최대값을 넘어가면 에러 발생
NOCACHE; -- 내부 메모리에 값을 캐시하는 것에 대한 설정으로 기본값은 NOCACHE이며 캐시하지 않은다는 의미
위의 구문 중 NOCACHE 옵션에 대한 부연 설명을 하면, 만약 아래처럼 CACHE 값을 지정했다고 하자.
CREATE SEQUENCE TEST_SEQ
CACHE 10;
시퀀스가 생성되었다면, 시퀀스 값을 다음 구문으로 얻어올 수 있다.
SELECT TEST_SEQ.NEXTVAL FROM DUAL;
NEXTVAL을 통해 매번 새로운 시퀀스 값을 얻는데, 새로운 값이 아닌 현재의 시퀀스 값을 확인하기 위한 구문은 다음과 같다.
SELECT TEST_SEQ.CURRVAL FROM DUAL;
시퀀스를 제거하는 구문은 다음과 같다.
DROP SEQUENCE TEST_SEQ;
마지막으로 생성된 시퀀스의 정보를 조회하는 구문은 다음과 같다.
SELECT * FROM ALL_SEQUENCES WHERE SEQUENCE_NAME = 'TEST_SEQ';