반응형
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가지를 생각했다.
- 해당 테이블에 value가 존재하는가
-> 이미 테이블에 value가 존재한다면 replication 오류 발생 가능성이 있음. - 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를 확인해보자.
반응형
'데이터베이스 > MySql' 카테고리의 다른 글
Warning Code : 1478InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope.InnoDB: assuming ROW_FORMAT=COMPACT. (0) | 2022.10.27 |
---|---|
특정 DB 테이블 찾기 (0) | 2022.06.13 |
[Mysql] BLOB 자료형과 BLOB 추출하기 (0) | 2022.06.07 |
[MySql] 조인(Joins) 명령어 (0) | 2020.07.21 |