시퀸스

    Sequence 

     

    유일한 값을 생성해주는 오라클 객체이다.

    일련번호, 자동증가 값을 생성한다.

    시퀀스는 독립적으로 테이블과 별개로 동작한다.

    모든 DBMS에서 사용하는 것은 아니다.

    시퀀스는 메모리에 Cache하여 성능을 향상 시킬 수 있다.

     

    NEXTVAL 및 CURRVAL 사용가능 조건

    서브쿼리가 아닌 SELECT절

    INSERT문의 SELECT절

    INSERT문의 VALUE절

    UPDATE문의 SET절

     

    NEXTVAL 및 CURRVAL 사용불가 조건

     VIEW의 SELECT절

     DISTINCT 키워드가 있는 SELECT문

     GROUP BY, HAVING, ORDER BY절이 있는 SELECT문

     SELECT, DELETE, UPDATE의 서브쿼리

     CREATE TABLE, ALTER TABLE 명령의 DEFAULT값자동으로 증가하는 컬럼을 PK로 잡거나 할떄 INSERT시 자동 증가로 시퀀스를 사용하지만 MAX+1을 사용할 때도 있다.


    MAX+1 

     

    하지만 MAX+1은 동시성보장이 되지않아 insert 시 다른 트랜잭션에의해 중복값이 등록 될 수 있어 주의해야한다.

     

    동시성 제어란 여러 명의 사용자가 동시에 행을 업데이트할 때 데이터베이스의 무결성을 유지하기 위해 사용되는 여러 가지 기술을 말합니다. 잘못된 동시성으로 인해 커밋되지 않은 읽기, 가상 읽기, 반복되지 않는 읽기와 같은 문제가 발생할 수 있습니다.

     

     

    사용하는 방법

    SELECT NVL(MAX(증가컬럼)+1,0FROM 테이블)

    위 구문을 INSERT VALUE 절에 넣어주면 된다.

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading