mun dev

[Oracle] 시퀀스(Sequence) 생성, 사용, 삭제 본문

DB/Oracle

[Oracle] 시퀀스(Sequence) 생성, 사용, 삭제

mndev 2024. 2. 6. 14:44

시퀀스(SEQUENCE)

  • 중복되지 않는 숫자 데이터를 생성
  • 시퀀스는 일련 번호 생성기, 번호를 순서대로 생성하는 데이터베이스 오브젝트
  • DB에서 테이블의 기본키가 숫자형 데이터일 경우, 이 테이블에 기본키인 컬럼에 시퀀스를 설정해 놓을 경우
  • 테이블에 데이터를 삽입할 때마다, 자동으로 각 로우를 식별할 수 있는 시퀀스 값이 할당 되어 저장

 

시퀀스(SEQUENCE) 생성

  • 숫자 1번부터 100번까지 출력하는 시퀀스
create sequence seq01
start with 1 -- 첫 시작 숫자를 1로 지정
increment by 1 -- 숫자의 증가치 1
maxvalue 100 -- 최대 숫자 100
nocycle;

 

시퀀스(SEQUENCE) 사용

  • 시퀀스의 다음 번호를 출력 또는 확인할 때는 시퀀스이름.nextval
  • nextval은 시퀀스를 실행할 때마다 값이 증가
  • currval은 현재 시퀀스 순번을 가져올 수 있음, 여러번 실행해도 순번은 증가하지 않고, 현재 순번만 가져옴
  • currval은 nextval을 한 번 실행한 세션에서만 사용 가능
insert into emp02 values(seq01.NEXTVAL, 'JACK', 3500);
insert into emp02 values(seq01.NEXTVAL, 'JAM', 3000);

-- nextval은 시퀀스를 실행할 대마다 값이 증가
select seq01.nextval
from dual

-- currval은 현재 시퀀스 순번을 가져올 수 있음
select seq01.currval
from dual

 

시퀀스(SEQUENCE) 삭제

  • drop문을 사용하여 삭제
DROP sequence seq01;