본문 바로가기

IT/SQL

Batch Insert 할 때 PK 오류가 난다면 (insert 안에 select 문)

두 번째에 해당합니다. 

 

보통 insert 안에 select 문을 넣는 경우는 순번 같은 컬럼에 자주 사용 됩니다. 

pk 오류를 방지하기 위해 현재 조건에 맞는 순번에 max 값을 구하여 1을 더하는 방식입니다. 

 

Batch insert 의 경우, 여러 개의 insert 를 묶어서 하나의 트랜젝션으로 처리합니다. 

따라서 Batch 안에서 순번의  max 값은 동일 하고, pk 오류가 발생합니다. 

 

참고 페이지: https://learn.microsoft.com/en-us/sql/connect/jdbc/use-bulk-copy-api-batch-insert-operation?view=sql-server-ver16