오늘은 업무를 보며 무결성 제약조건이 나왔다.
쿼리문을 통해 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
시퀀스를 사용해 쿼리문의 질을 높여보자
'코딩공부 > DataBase' 카테고리의 다른 글
Mysql에서 Oracle에서 사용하는 TO_CHAR 사용하기 (0) | 2021.03.17 |
---|---|
ORA-00926: 누락된 VALUES 키워드 (0) | 2021.01.13 |
oracle 테이블 백업 / 삭제 / 복사 (0) | 2020.08.18 |
oracle insert for문 (WHILE LOOP를 이용한 100만건 데이터 insert 하기) (0) | 2020.08.06 |
oracle 데이터 합치기 (0) | 2020.07.18 |