[TIL] 240226 - Tibero SEQUENCE

황지원·2024년 2월 27일

TIL

목록 보기
8/15

개요

  • 시퀀스는 DBMS 차원에서 유일한 정수 값이 필요할 때 사용한다.
  • 티베로는 오라클의 SQL 구문과 매우 유사하다. 오라클을 이미 알고 있다면 쉽게 티베로도 사용할 수 있으며 티베로의 Sequence와 관련된 내용은 모두 오라클의 그 것과 매우 유사하거나 동일하다.

내용

  1. 먼저 시퀀스를 생성하는 구문이다.

    CREATE SEQUENCE TEST_SEQ
    MINVALUE 1 -- 기본값은 1
    MAXVALUE 10 -- 기본값은 1E+28
    NOCYCLE -- CYCLE로 지정되면 값이 최대값을 넘을 서면 다시 값은 최소값에서 시작됨, 기본값은 NOCYCLE로 값이 최대값을 넘어가면 에러 발생
    NOCACHE;  -- 내부 메모리에 값을 캐시하는 것에 대한 설정으로 기본값은 NOCACHE이며 캐시하지 않은다는 의미
  2. 위의 구문 중 NOCACHE 옵션에 대한 부연 설명을 하면, 만약 아래처럼 CACHE 값을 지정했다고 하자.

    CREATE SEQUENCE TEST_SEQ
    CACHE 10;
    • 시퀀스의 캐쉬 기능은 시퀀스 값을 더 빨리 생성하기 위해 원하는 개수만큼 미리 생성해 두게 된다.
    • 위의 구문의 경우 미리 값을 생성해 두게 되고, NEXTVAL 함수를 통해 시퀀스 값을 생성할 때 미리 생성된 시퀀스 값을 빠르게 제공하게 된다.
    • 문제는 미리 생성된 시퀀스 값들이 다 사용되지 못할지라도 다음의 시퀀스 값은 미리 생성된 값 다음 값이 사용된다는 점이다.
  3. 시퀀스가 생성되었다면, 시퀀스 값을 다음 구문으로 얻어올 수 있다.

    SELECT TEST_SEQ.NEXTVAL FROM DUAL;
    • 여기서 DUAL 테이블은 임시 논리테이블로 어떤 함수의 사용법을 확인하기 위한 용도 등에 사용할 수 있다. 예를들어 함수의 사용을 확인하기 위해 테이블이 지정이 필요할때, 마땅이 지정할 테이블이 없을 경우 DAUL 테이블을 지정할 수 있다.
  4. NEXTVAL을 통해 매번 새로운 시퀀스 값을 얻는데, 새로운 값이 아닌 현재의 시퀀스 값을 확인하기 위한 구문은 다음과 같다.

    SELECT TEST_SEQ.CURRVAL FROM DUAL;
  5. 시퀀스를 제거하는 구문은 다음과 같다.

    DROP SEQUENCE TEST_SEQ;
  6. 마지막으로 생성된 시퀀스의 정보를 조회하는 구문은 다음과 같다.

    SELECT * FROM ALL_SEQUENCES WHERE SEQUENCE_NAME = 'TEST_SEQ';
profile
함께 도전하고 성장하는 어린 꿀벌, 주니어 개발자 황지원 입니다

0개의 댓글