[SQL] 시퀀스

김용준·2022년 11월 2일

SQL

목록 보기
13/17

시퀀스란?

일련번호를 자동으로 생성하는 데이터베이스 객체다. 중복을 허용하지 않는, 행을 구분하기 위한 기본키 값을 생성하는 데 주로 사용된다.

시퀀스 생성과 생성 옵션

-- 생성옵션은 생략 가능하다.
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 값은 수정할 수 없다.

profile
차선이 모여 최선이 된다.

0개의 댓글