반응형

DB 1062 Error Solution.

비주얼에서 MySql에 Insert문을 다음과 같은 구문을 실행했다.

if (!db->exec())
		return false;

db->set_query("inSert into event_info(event_num, event_text, event_type) values %s", Query.c_str());

bool result = db->exec();

if (result == false)
{
	cout << db->getDBError()<< endl;
    ...
    
}

다음과 같은 오류가 발생했을 때, 다음 2가지를 생각했다.

  1. 해당 테이블에 value가 존재하는가
    -> 이미 테이블에 value가 존재한다면 replication 오류 발생 가능성이 있음.
  2. insert 구문의 value들 중에서 중복되는 value가 있는가
    -> 1개의 byte씩 확인하기에는 힘들기 때문에 해당 text 파일을 열어봄.
CREATE TABLE 'event_info'(
	'event_index' INT(6) NOT NULL DEFAULT '0',
    'event_text' VARCHAR(20) NOT NULL DEFAULT '',
	...
    PRIMARY KEY ('event_index')
    UNIQUE INDEX 'event_index' ('event_text')

)

 

text 파일에서 중복되는 event_index를 제거 후에, 재실행해서 문제를 해결

(PK이기 때문에, 중복되면 안됨, 원인은 결국 PK의 중복)

 

정리

duplicate 오류가 발생하면 무엇인가 중복으로 발생.

해당 DB 테이블 확인해보고, key를 확인해보자.

반응형

+ Recent posts