본문 바로가기
DB/ORACLE

[ORACLE] INSERT시 컬럼 SEQ 증가 (NVL(MAX(SEQ),0) + 1)

by madinthe90 2022. 4. 18.
반응형

 

PK를 잡기위해 자동으로 증가하는 시퀀스를 사용하거나, 전자정부프레임워크의 EgovIdGnrStrategy 을 사용해왔다.

하지만 시퀀스없이 단순하게 숫자만 +1 씩 증가해주는 부분이 필요해 NVL과 MAX를 이용해 자동증가하는 부분에 대해 알아봤다.


우선 NVL 사용법은 아래를 확인하면된다!

https://madinthe90.tistory.com/24?category=1047512 

 

[ORACLE] NVL,NVL2 (공백, NULL 값 치환)

NULL 값을 특정값으로 출력하고 싶은 경우 사용하는 함수이다! - NVL NVL 은 컬럼값이 NULL 인 경우 지정된 값을 출력, NULL이 아닌 경우 원래 값을 출력하는 함수. NVL(컬럼,'NULL일때 반환값') NVL(컬럼,0)

madinthe90.tistory.com


NVL(MAX(SEQ),0) + 1 사용하는 방법은 아주 간단하다!

 

- 사용법

SELECT NVL(MAX(증가시킬컬럼명),0) + 1 FROM 테이블명

데이터가 없으면 0, 있으면 최대값 +1을 하는 방식이며

해당 부분을 INSERT 문에 적용하면 된다!

 

반응형

댓글