2627: Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object
SQL Server의미
PRIMARY KEY 또는 UNIQUE 제약 조건으로 보호되는 컬럼에 이미 존재하는 값을 삽입 또는 갱신하려 했다. 중복 키는 허용되지 않는다.
원인
같은 고유 값을 두 번째로 삽입, 기존 값과 충돌하는 UPDATE, 고유성 검사 누락, 또는 두 개의 동시 요청이 같은 행을 생성.
해결 방법
삽입 전에 행의 존재 여부를 확인하거나 MERGE / IF NOT EXISTS를 사용한다. 멱등한 삽입에는 "INSERT ... WHERE NOT EXISTS" 패턴을 적용한다. 오류를 잡아 의미 있는 메시지를 반환한다. 중복 데이터가 실제로 필요하다면 제약 조건을 검토한다. 키 생성 시 충돌을 피하려면 IDENTITY 또는 SEQUENCE를 사용한다.
같은 데이터베이스의 다른 항목
- 1205Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint
- 18456Login failed for user
- 8152String or binary data would be truncated