본문 바로가기

개발/SQL

[SQL] Oracle - SEQUENCE

 

< 시퀀스 (SEQUENCE) >

 

- 자동으로 번호를 발생시켜주는 역할을 하는 객체

- 정수값을 순차적으로 자동 생성

 

[ 생성 ]

CREATE SEQUENCE 시퀀스명

START WITH 시작숫자                 - 처음 발생시킬 시작값 지정 (생략가능)

INCREMENT BY 증가 값              - 얼마씩 증가시킬지 지정 (생략가능)

MAXVALUE 최댓값                       - 발생시킬 최댓값 지정 (생략가능)

MINVALUE 최솟값                        - 발생시킬 최솟값 지정 (생략가능)

CYCLE / NOCYCLE                      - 값 순환 여부 / 순환 시 최솟값부터 시작 (생략가능)

CACHE* 바이트크기 / NOCACHE - 캐시 사용 여부 

 

* SEQUENCE CACHE MEMORY

- 미리 발생할 값들을 생성해서 저장해 두는 공간

- 호출할 때 매번 새로 번호를 생성하는 것이 비효율적

   => 캐시 공간에 미리 생성된 값을 가져다 쓰게 해 속도를 높일 수 있음

 

[ 사용 ]

시퀀스명.CURRVAL   - 현재 시퀀스 값
  - 마지막으로 성공적으로 발생된 NEXTVAL값
  - 생성한 값이 하나라도 있어야 시작 가능
시퀀스명.NEXTVAL   - 시퀀스값을 증가시키고, 증가된 시퀀스값
  - 기존의 시퀀스값에서 INCREMENT BY 값만큼 증가된 값
  - (= 시퀀스.CURRVAL + INCREMENT BY 값)

 

[ 변경 ]

 

ALTER SEQUENCE 시퀀스명

변경할 값

...;

* START WITH 으로 지정한 시작값 변경 불가!