코딩공부/DataBase

oracle 시퀀스(sequence) 사용

integerJI 2020. 12. 7. 23:55

오늘은 업무를 보며 무결성 제약조건이 나왔다.

 

쿼리문을 통해 insert를 하며 pk값인 id를 뽑아 +1을 해주어 고유의 값을 만들어 주었으나

 

api를 동시에 50건 이상이 호출되다 보니 무결성 제약조건이 나오게 되었다.

 

이를 해결하기 위해 시퀀스를 사용한다.

 

--

 

시퀀스란 숫자를 설정한 순차적으로 순번을 반환하는 데이터베이스의 객체이다.

 

CREATE SEQUENCE EX_SEQ --시퀀스이름 EX_SEQ
INCREMENT BY 1 --증감숫자 1
START WITH 1 --시작숫자 1
MINVALUE 1 --최소값 1
MAXVALUE 1000 --최대값 1000
NOCYCLE --순한하지않음
CACHE; --메모리에 시퀀스값 미리할당

 

출처 : coding-factory.tistory.com/420

 

시퀀스를 조회하려면 dual을 사용해야 한다.

--현재 시퀀스 조회
SELECT EX_SEQ.CURRVAL FROM DUAL

--다음 시퀀스 조회
SELECT EX_SEQ.NEXTVAL FROM DUAL

 

시퀀스를 사용해 쿼리문의 질을 높여보자