데이터 베이스/SQL

SQL 자동증가하는 컬럼 카운트하기(select nvl(max(seq),0)

쟈누이 2020. 6. 22. 17:00
반응형

자동으로 증가하는 컬럼을 PK로 잡거나 할떄 INSERT시 자동 증가로 시퀀스를 사용하지만 MAX+1을 사용할 때도 있다.

 

하지만 MAX+1은 동시성보장이 되지않아 insert 시 다른 트랜잭션에의해 중복값이 등록 될 수 있어 주의해야한다.

 

사용하는 방법은 간단하다.

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

 

insert into board(seq, title, writer, content) values ((select nvl(max(seq),0)+1 from board),?,?,?)";

 

위 구문을 INSERT VALUE 절에 넣어주면 된다.

 

참고링크

https://coding-factory.tistory.com/292

 

[Oracle] 오라클 insert 자동증가 컬럼의 최대값 +1하기 (MAX+1)

NVL함수와 MAX함수를 활용하여 오라클 데이터 insert시 컬럼의 최대값+1을 저장하는 방법입니다. INSERT INTO DEPT_TABLE ( DEPT_SQ, COMPANY, DEPT_NM ) VALUES ( (SELECT NVL(MAX(DEPT_SQ),0)+1 FROM DEPT_TABLE..

coding-factory.tistory.com

 

반응형