일련번호를 자동으로 생성하는 데이터베이스 객체다. 중복을 허용하지 않는, 행을 구분하기 위한 기본키 값을 생성하는 데 주로 사용된다.
-- 생성옵션은 생략 가능하다.
CREATE SEQUNCE 시퀀스명
INCREMENT BY value
START WITH value
MAXVALUE value
MINVALUE value
CACHE value
INCREMENT BY value : 한번에 value값 만큼 증가시킨다. 기본값은 1이다.
START WITH value : 시작값을 value로 지정한다. 기본값은 1이다. START WITH값은 시퀀스 생성 이후 절대로 수정할 수 없다. 만약 수정될 경우 일련번호가 중복될 수도 있기 때문이다.
MAXVALUE value : 최대값을 value로 지정한다. 기본값은 NOMAXVALUE다.
MINVALUE value : 최대값을 value로 지정한다. 기본값은 NOMINVALUE다.
CACHE value : 지정된 value개 만큼 일련번호를 미리 생성해서 메모리에 캐시한다.기본값은 CACHE 20이다. NOCACHE로 설정하면 일련번호를 미리 생성해두지 않는다.
-- 새 일련번호 발행
시퀀스명.NEXTVAL;
-- 현재 일련번호 조회
시퀀스명.CURRVAL;
CURRVAL는 시퀀스에서 마지막으로 생성한 번호를 반환한다. 그래서 CURRVAL를 시퀀스 생성 직후 사용하면 번호가 발행된 적이 없으므로 오류가 발생한다.
-- 시퀀스 수정
ALTER SEQUENCE 시퀀스명;
INCREMENT BY value
START WITH value
MAXVALUE value
MINVALUE value
CACHE value
-- 시퀀스 삭제
DROP SEQUENCE 시퀀스명;
앞서 언급했다시피 START WITH 값은 수정할 수 없다.