hanker

Tibero - Sequence 만들기 본문

DATABASE/SQL

Tibero - Sequence 만들기

hanker 2025. 3. 6. 02:29
반응형

Tibero에서 시퀀스(Sequence)는 자동으로 증가하는 숫자를 생성하는 객체이다.

 

이번 글에서는 Sequence 생성 방법에 대해서 알아보자.

 


1.시퀀스 생성
CREATE SEQUENCE 시퀀스_이름
    START WITH 시작값        -- 시퀀스의 시작값 (기본값: 1)
    INCREMENT BY 증가값       -- 증가할 값 (기본값: 1)
    MINVALUE 최소값           -- 최소값 설정 (기본값: 1)
    MAXVALUE 최대값           -- 최대값 설정 (기본값: 999999999999999999999999999)
    CYCLE | NOCYCLE          -- CYCLE: 최대값 도달 시 다시 최소값으로 순환 (기본값: NOCYCLE)
    CACHE 캐시크기           -- 성능 최적화를 위한 캐시 크기 (기본값: 20)
    NOORDER | ORDER;         -- 순차적 증가 보장 (ORDER), 보장하지 않음 (NOORDER, 기본값)

 

 

1-1. 기본적인 시퀀스 생성

CREATE SEQUENCE user_seq
    START WITH 1
    INCREMENT BY 1
    NOCYCLE
    CACHE 20;
  • user_seq라는 시퀀스를 생성
  • 1부터 시작하며 1씩 증가
  • NOCYCLE : 최대값 도달 시 1부터 다시 시작하지 않음
  • CACHE 20 : 성능 최적화를 위해 20개까지 미리 생성하여 캐싱

 

1-2. 특정 범위를 가지는 시퀀스

CREATE SEQUENCE order_seq
    START WITH 1000
    INCREMENT BY 5
    MINVALUE 1000
    MAXVALUE 9999
    CYCLE
    CACHE 10;

 

  • 1000부터 시작하여 5씩 증가
  • 최소값: 1000, 최대값: 9999
  • CYCLE: 최대값을 넘으면 다시 최소값(1000)으로 돌아감
  • CACHE 10: 성능 최적화를 위해 10개의 값을 캐시

 


2. 시퀀스 값 조회

 

2-1. 시퀀스 값 조회

SELECT order_seq.NEXTVAL FROM DUAL;

 

  • NEXTVAL: 다음 시퀀스 값을 가져옴

 

SELECT order_seq.CURRVAL FROM DUAL;

 

  • CURRVAL: 현재 시퀀스 값을 조회
  • 주의: NEXTVAL을 한 번이라도 실행한 후에만 CURRVAL을 사용할 수 있음

 


3. 시퀀스를 사용하여 INSERT 실행

 

INSERT INTO users (id, name) VALUES (user_seq.NEXTVAL, '홍길동');

 

 


4. 시퀀스 변경 및 삭제

 

4-1. 시퀀스 변경 (ALTER SEQUENCE)

ALTER SEQUENCE order_seq
    INCREMENT BY 10
    MAXVALUE 20000
    NOCYCLE;

 

  • 증가값을 10으로 변경
  • 최대값을 20000으로 변경
  • 순환하지 않도록 NOCYCLE 설정

 

 

4-2. 시퀀스 삭제 (DROP SEQUENCE)

DROP SEQUENCE order_seq;

 

  • order_seq 시퀀스 삭제

 

 

반응형