본문 바로가기
웹개발/데이터베이스

[오라클]시퀀스(sequence)

by 지구별 여행자 임탱 2024. 3. 5.
728x90

오라클에서 시퀀스(sequence)는 일련 번호나 자동 증가 값을 생성할 때 사용하는 데이터베이스 객체다.

주로 테이블의 기본키나 고유한 번호를 부여할 때 사용 된다.

시퀀스는 순차적으로 증가 시킬때 사용하며 특정 값에 도달 했을때 다시 1부터 시작하도록 설정 할 수도 있다.

 

시퀀스 생성 쿼리 문법

CREATE SEQUENCE SEQNAME
  INCREMENT BY 1  --증감숫자 1이면 1,2,3  2이면 1,3,5
  START WITH 1
  MINVALUE 1  --최소값
  MAXVALUE 9999 -- 최대값
  CYCLE | NOCYCLE  --최대값에 이른 후에 처음으로 돌아갈 것인지 
  CACHE | NOCACHE  -- 캐시를 사용하여 미리 값을 할당할지 안할것인지
  ORDER | NOORDER;   -- 요청의 순서를 보장하는지 안하는지

 

생성 된 시퀀스를 쿼리문에서 사용하는 예제

-- 다음 값을 얻기
SELECT SEQNAME.NEXTVAL FROM DUAL;

-- 현재 값을 얻기 (NEXTVAL을 최소 한 번 호출한 후에만 사용 가능)
SELECT SEQNAME.CURRVAL FROM DUAL;

 

시퀀스 수정 및 삭제 방법
시퀀스를 수정을 위해서는 ALTER SEQUENCE를, 삭제를 위해서는 DROP SEQUENCE를 사용하면 됩니다.

-- 시퀀스 수정하기
ALTER SEQUENCE SEQNAME
  INCREMENT BY 10
  MAXVALUE 10000
  CYCLE;

-- 시퀀스 삭제하기
DROP SEQUENCE SEQNAME;