본문 바로가기

IT관련/Oracle

오라클(Oracle) - 시퀀스 생성 및 사용(sequence)

데이터베이스를 사용하면 순차적으로 번호를 증가시키거나

 

데이터 순서대로 기본키 값을 주고 사용해야 할 때가 있습니다

 

그럴 때 사용하는 것이 바로 시퀀스 인데

 

시퀀스를 사용하기 위해서는 시퀀스를 생성하고 사용해야 합니다

 

시퀀스 생성 표현식은 아래와 같습니다

create sequence 시퀀스명
[start with 정수]                   -- 시작 값, 1이 기본값
[increment by 정수]              -- 증가치, 생략 시 1이 기본값
[maxvalue 정수 | nomaxvalue] -- 증가 최대값
[minvalue 정수 | nominvalue]  -- 최소값
[cycle | nocycle]                     -- 값 순환 여부 지정
[cache 바이트크기 | nocache]    -- 캐시메모리 크기 지정, 기본 20byte, 최소 2byte

시퀀스를 사용할 때는

 

시퀀스명.nextval, 시퀀스명.currval를 이용하여 사용합니다

 

현재 값을 보기 위해서는 .currval를 이용하고

증가치 만큼 증가시키려면 .nextval를 이용하여 사용할 수 있습니다

 

시퀀스를 확인할 수 있는 테이블 명은 user_sequences입니다

select* from user_sequences; 를 통해 정보를 확인할 수 있습니다.

 

테스트는 아래와 같이 진행할 수 있습니다.

 

select  시퀀스명.nextval from dual;

select  시퀀스명.currval from dual;


이때 주의해야 할 점은 시퀀스를 생성하고 .nextval를 한 번도 실행하지 않았다면

 

스퀀스의 값을 한 번도 사용하지 않았기 때문에 에러가 발생합니다

 

그러므로 .currval는 한 번이라도 .nextval를 진행한 후에 사용하시기 바랍니다.