Database/OracleSQL

oracle / 시퀀스(Sequence) 생성, 수정, 삭제 방법, 사용하는 방법

hyeon-H 2021. 6. 24. 11:42
728x90
반응형

시퀀스란?
"순서"를 뜻하며 시퀀스를 사용할때에 자동으로 순차적으로 증가하게된다.
보통 새로 생성되는 데이터의 PK값이 중복되는 것을 방지하기 위해 사용됩니다.



시퀀스(Sequence) 생성방법

--시퀀스 생성방법 예제
create sequence SEQ_test
increment by 1
start with 1
MAXVALUE 1000
nocycle;

CREATE SEQUENCE [시퀀스명]
INCREMENT BY [증감숫자]
START WITH [시작숫자]
NOMINVALUE OR MINVALUE [최솟값]
NOMAXVALUE OR MAXVALUE [최대값]
CYCLE OR NOCYCLE
CACHE OR NOCACHE;

  • NOMINVALUE : 디폴트값 설정, 증가일때 1, 감소일때 -1028 
  • MINVALUE : 최소값 설정, 시작숫자와 작거나 같아야하고 MAXVALUE보다 작아야함
  • NOMAXVALUE : 디폴트값 설정, 증가일때 1027, 감소일때 -1
  • MAXVALUE : 최대값 설정, 시작숫자와 같거나 커야하고 MINVALUE보다 커야함
  • CYCLE 설정시 최대값에 도달하면 최소값부터 다시 시작
  • NOCYCLE 설정시 최대값 생성 시 시퀀스 생성중지
  • CACHE 설정시 메모리에 시퀀스 값을 미리 할당하고
  • NOCACHE 설정시 시퀀스값을 메로리에 할당하지 않음;

시퀀스 수정하는 방법

ALTER SEQUENCE [시퀀스명]
INCREMENT BY [증가값]
NOMINVALUE OR MINVALUE [최솟값] 
NOMAXVALUE OR MAXVALUE [최대값]
CYCLE OR NOCYCLE [사이클 설정 여부]
CACHE OR NOCACHE [캐시 설정 여부]

시퀀스 삭제하는 방법

DROP SEQUENCE [시퀀스명]

시퀀스 조회하는 방법

SELECT [시퀀스명].CURRVAL FROM DUAL;

 해당 시퀀스 진행된 값을 조회한다.

SELECT * FROM USER_SEQUENCES;

생성되어있는 모든 시퀀스를 조회한다.


시퀀스 사용하는 방법

insert into test1 (num)
values(seq_test.nextval);

테이블에 데이터를 삽입할때 [시퀀스명].nextval 을 이용한다. 위의 구문을 반복적으로 사용하면

이처럼 수가 증가하면서 데이터가 삽입된것을 확인 할 수 있다.


 

 

 

[Oracle] 오라클 시퀀스(Sequence) 사용법 총정리 (생성, 조회, 수정, 삭제)등

시퀀스(Sequence)란? 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체입니다. 보통 PK값에 중복값을 방지하기위해 사용합니다. 예를들어 게시판에 글이 하나 추가될때

coding-factory.tistory.com

 

728x90
반응형