ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 시퀀스 (SESQUNE)
    SQL 2020. 2. 11. 11:34

    SERQUENCE 

     

     정의

    - 중복되지 않은 정수값을 리턴해주는 오라클 객체

     

     왜?

    -  데이터에 key 컬럼은 값이 유일해야 하기 때문에

       -> 유일한 값을 만드는방법

             1. key table (미리 값을 정의 해둔 테이블)

             2. uuid (랜덤한 32자리수의 문자열을 반환해주는 함수)

             3. SEQUENCE 생성 : 

                

    생성 방법

    CREATE SEQUENCE 시퀀스_이름

     

    [OPTION ...]

     

     

    1.

    [ORDER N]

     

    명명규칙

    SEQ_사용할 테이블명 

     * 일반적인 명명규칙임

     

    시퀀스 제공 함수

     - NEXTVAL : 시퀀스에 다음 값을 가져올 때 사용

    한번더 실행하면

     

     - CURRVAL : NEXTVAL를 사용하고나서 현재 읽어 들인 값을 재확인

    시퀀스 결과 값을 테이블에 삽입 가능

    주의점

    위 사진처럼 NEXTVAL를 실행하고 INSERT해서 결과 값을 넣으면 구멍이 생긴 것 처럼 4가 없어짐

     -> ROLLBACK도 안되고 뭣도 안됌

    근데 값들을 유일하게 구별할 수 있는 원 기능에는 별 상관없지만

     시각적으로 보여주는게 중요한 작업에서는 다른 방법을 채택해야함

     

    오라클 tool - 시퀀스에서 확인할 수 있는 정보

    INCREMENT_BY  : 1  시퀀스 증가치 (1씩 증가) 

     

    START WITH N : 시퀀스 시작값 (N부터 시작)  * 보통은 DROP하고 시퀀스 재생성함

     

    CYCLE_FLAG : 반복할지 안할지 여부

     

    ORDER_FLAG :  

     

    CACHE_SIZE : UNIQUE한 값을 생성해야 하므로 동시성 제어가 필요

     

                       즉, 시퀀스 객체에 접근하기 위한 LOCK이 필요한데 메모리에 미리 올려두어 LOCK 경합을 해소

     

                       단, 캐싱된 시퀀스 값들은 이미 사용이 된것

     

    LAST_NUMBER : 마지막으로 값이 읽혀질 대상 ( 사용할때마다 값이 바뀜)

     

     

    'SQL' 카테고리의 다른 글

    INDEX 설계  (0) 2020.02.12
    INDEX와 TABLE  (0) 2020.02.11
    VIEW  (0) 2020.02.11
    주석 확인 / 생성  (0) 2020.02.11
    테이블 변경  (0) 2020.02.10

    댓글

Designed by Tistory.