Oracle DB_시퀀스(Sequence)

JW__1.7·2022년 8월 26일
0

DB 공부일지

목록 보기
10/27

DB_시퀀스(Sequence)

  • 일련번호를 생성하는 데이터베이스 객체
  • 자동으로 순차적으로 증가하는 번호를 생성
  • 기본키(PK)에서 중복값을 방지하기 위해 주로 사용 (인공키)
  • NEXTVAL를 이용하면 새로운 번호가 생성
  • CURRVAL를 이용하면 현재 번호를 확인
    • 최초 1번은 NEXTVAL를 사용해야 CURRVAL도 사용 가능하다.

시퀀스 생성 형식

CREATE SEQUENCE 시퀀스명
START WITH 시작값          -- 생략하면 1, 생성 이후 수정 불가
INCREMENT BY 증가값        -- 생략하면 1
MINVALUE 최소값
MAXVALUE 최대값
CACHE 사용유무             -- NOCACHE 권장
CYCLE 사용유무             -- 생략하면 NOCYCLE, PK에서 사용한다면 NOCYCLE (PK는 하나만 존재하기 때문에)
  • INCREMENT BY : 시퀀스 실행 시 증가값
  • START WITH : 시퀀스의 시작값이다. (MINVALUE과 같거나 커야 한다)
  • MINVALUE : 시퀀스가 시작되는 최소값
  • MAXVALUE : 시퀀스가 끝나는 최대값
  • NOCACHE | CACHE : NOCACHE(사용안함), CACHE(캐시를 사용하여 미리 값을 할당해 놓아서 속도가 빠르며, 동시 사용자가 많을 경우 유리)
  • NOCYCLE | CYCLE : NOCYCLE (반복X), CYCLE(시퀀스의 최댓값에 도달 시 최솟값 1부터 다시시작)
  • NOORDER | ORDER : NOORDER(사용X), ORDER(요청 순서로 값을 생성하여 발생 순서를 보장하지만 조금의 시스템 부하 O)

부서 테이블에서 사용할 부서_시퀀스

DROP SEQUENCE DEPARTMENT_SEQ;
CREATE SEQUENCE DEPARTMENT_SEQ
    START WITH 1
    INCREMENT BY 1
    MINVALUE 1
    MAXVALUE 100
    NOCACHE
    NOCYCLE;

시퀀스의 시작값이 1, 증가값 1, 최소값 1, 최대값 100, nocache, 반복하지 않는다.

0개의 댓글