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中文网其他相关文章!