Duplicate entry '0' for key 'PRIMARY' 오류

971 단어 mysqlmysql

Duplicate entry '0' for key 'PRIMARY'란?

쉽게 말해 PK값이 재대로 Insert되지 않는다는 의미이다.

해결방법

1. DB에서 PK로 사용하려는 값이 PK 혹은 AI가 체크되어 있는지 잘 확인한다.

2. Insert Query에서 PK를 주고있는지 확인해라

에러를 유발하는 쿼리 : PK값인 'id' 쿼리에 넣지 않음

public static final String SAVE_STUDENT = 
        	"INSERT INTO tbl_student(name, phone, email)\r\n" + 
            	"VALUES(#{name}, #{phone}, #{email})";

정상적인 쿼리

public static final String SAVE_STUDENT = 
        	"INSERT INTO tbl_student(id, name, phone, email)\r\n" + 
            	"VALUES(#{id}, #{name}, #{phone}, #{email})";

PK값이 로직에서 주는 특수한 값이면 밑의 쿼리가 당연하다고 생각 하겠지만,
만약 'Auto Increase'되는 값인데 왜 주어야 하나?
솔직히 나도 정확히는 모른다. Mac에서 로컬로 작업할때는 에러를 유발하는 쿼리로도 정상적으로 동작했었는데 막상 테스트 서버에 올리니까 에러가 났다.

아시는 분은 알려주시면 감사하겠습니다....ㅎㅎ

좋은 웹페이지 즐겨찾기