SEQUENCE

김민석·2023년 8월 30일
0

SEQUENCE란?

  • 순차적으로 일정한 간격의 숫자(번호)를 발생시키는 객체
  • PRIMARY KEY가 지정된 컬럼에 사용하기 좋다

작성법

CREATE SEQUENCE 시퀀스이름
[STRAT WITH 숫자]
[INCREMENT BY 숫자]
[MAXVALUE 숫자 | NOMAXVALUE]
[MINVALUE 숫자 | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE 바이트크기 | NOCACHE]
  • START WITH
    처음 발생시킬 시작 값 지정, 생략하면 1이 기본
  • INCREMENT BY
    다음 값에 대한 증가치, 생략하면 1이 기본
  • MAXVALUE | NOMAXVALUE
    발생시킬 최댓값 지정
  • MINVALUE | NOMINVALUE
    최솟값 지정
  • CYCLE | NOCYCLE
    값 순환 여부 지정
  • CACHE | NOCACHE
    캐쉬메모리 기본값은 20바이트, 최솟값은 2바이트
    시퀀스의 캐쉬메모리는 할당된 크기만큼 미리 다음 값들을 생성해 저장해둔다

사용법

시퀀스명.NEXTVAL

  • 다음 시퀀스 번호를 얻어옴 (INCREMENT BY 만큼 증가된 수)
  • 단, 생성 후 처음 호출된 시퀀스인 경우 START WITH에 작성된 값이 반환됨

시퀀스명.CURRVAL

  • 현재 시퀀스 번호를 얻어옴
  • 단, 시퀀스가 생성 되자마자 호출할 경우 오류 발생 (마지막으로 호출한 NEXTVAL 값을 반환하기 때문)

변경법

  • 기본적으로 CREATE 작성법과 같으나 START WITH는 제외
ALTER SEQUENCE 시퀀스이름
[INCREMENT BY 숫자]
[MAXVALUE 숫자 | NOMAXVALUE]
[MINVALUE 숫자 | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE 바이트크기 | NOCACHE]

0개의 댓글