이미 생성된 테이블에 새로운 데이터를 추가하려는데 나타난 에러이다.
SQL Error [23000]: JDBC-10007:UNIQUE constraint violation ('데이터베이스명'.'테이블명').
새롭게 추가하려는 데이터에 기본키이면서 중복되는 값이 존재하기 때문이다.
중복된 데이터 확인 후, 이를 제거하여 다시 데이터를 삽입하면 에러가 뜨지 않을 것이다.
이때, 엑셀의 중복데이터 제거 기능을 이용하면 편하다.
다른 열을 기본키로 추가해서 기본키에 중복된 값이 사라진다면, PK를 추가하는 것이다. 이 때, PK를 변경해서 일어날 다른 상황들을 모두 고려해야 한다.
PK를 변경하려고 결정했다면, PK 삭제 -> PK에 추가할 컬럼의 NOT NULL 속성 추가 -> PK 재생성 과정이 필요하다.
-- /* 1. PK삭제 */
ALTER TABLE 테이블명 DROP CONTRAINT PK_테이블명
/* 2. PK에 추가할 컬럼의 NOT NULL 속성 추가 */
ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 데이터타입 NOT NULL
/* 3. PK 재생성 (/
ALTER TABLE 테이블명 ADD CONSTRAINT PK_테이블명 PRIMARY KEY(컬럼1, 컬럼2, ...기본키가 될 컬럼들)
사실 근본적인 해결 방법인지는 잘 모르겠다. 그렇지만 중복된 데이터를 제거없이 모두 DB에 올리고 싶다면 이 방법이 유용할 것 같다.