집 >데이터 베이스 >MySQL 튜토리얼 >테이블을 변경할 때 MySQL 오류 1062: 'PRIMARY' 키에 대한 중복 항목 '0'이 발생하는 이유는 무엇입니까?
MySQL 오류 1062: 기본 키 중복 '0'
momento_distribution 테이블을 변경하는 동안 문제가 발생하여 오류 " 1062 - 'PRIMARY' 키에 대해 '0' 항목이 중복되었습니다." 이는 테이블의 데이터에 문제가 있음을 나타낼 수 있습니다.
원본 테이블 구조에 정의된 기본 키는 momento_id 및 momento_idmember 열의 조합이었습니다. 그러나 새 ID 열을 추가하고 이를 기본 키로 설정한 후 이 열에서 특히 '0' 값이 중복되는 것을 발견했습니다.
이 문제를 해결하려면 ID 열을 지정해 볼 수 있습니다. 아래와 같이 테이블 정의에서 자동 증가로 사용됩니다.
CREATE TABLE `momento_distribution` ( `momento_id` INT(11) NOT NULL, `momento_idmember` INT(11) NOT NULL, `created_at` DATETIME DEFAULT NULL, `updated_at` DATETIME DEFAULT NULL, `unread` TINYINT(1) DEFAULT '1', `accepted` VARCHAR(10) NOT NULL DEFAULT 'pending', `ext_member` VARCHAR(255) DEFAULT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), -- New primary key KEY `momento_distribution_FI_2` (`momento_idmember`), KEY `accepted` (`accepted`, `ext_member`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
또는 이미 id 열을 생성한 경우 다음과 같이 수정할 수 있습니다. 다음 쿼리를 사용하여 자동 증가:
ALTER TABLE `momento_distribution` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT, DROP PRIMARY KEY, ADD PRIMARY KEY (`id`); -- New primary key
id 열을 자동 증가로 지정하면 각 행이 이 열에 대해 고유한 값을 갖도록 하여 중복된 '0' 문제를 제거할 수 있습니다. 이렇게 하면 테이블 구조를 변경하고 데이터 손실 없이 id 열을 기본 키로 할당할 수 있습니다.
위 내용은 테이블을 변경할 때 MySQL 오류 1062: 'PRIMARY' 키에 대한 중복 항목 '0'이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!