【问题标题】:#1062 - Duplicate entry '1' for key 1 when enabling Auto_increment#1062 - 启用 Auto_increment 时键 1 的重复条目“1”
【发布时间】:2012-03-10 18:08:47
【问题描述】:

当我尝试在 phpmyadmin 的列上启用 auto_increment 时,我总是收到此错误:

#1062 - Duplicate entry '1' for key 1 

有问题的列是 PK 和一个 INT。它已经有几行了。因此,我尝试了以下方法:

ALTER TABLE Persons AUTO_INCREMENT=7

这应该将自动递增设置为从 7 开始,因此跳过该行中已经存在的 0 到 6...但它不起作用。或者这就是理论。

我做错了什么?


更新:

我已尝试删除列上的 PK 索引并运行查询,将列设置为 NULL。一切都设置为NULL。然后我尝试添加auto increment,但出现以下错误:#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key。我尝试再次添加 PK 索引并获得以下#1062 - Duplicate entry '0' for key 1。啊。

【问题讨论】:

    标签: mysql phpmyadmin auto-increment mysql-error-1075


    【解决方案1】:

    尝试将auto_increment 添加到现有表时,您需要确保表中已有的所有键值都是唯一的。

    将列值设置为NULL 应该可以。然后,mySQL 将使用自动递增的值自动填充值。

    【讨论】:

    • 那么浏览该列并将其替换为NULLs 并再试一次?
    • @Django 是的,或者只是UPDATE table SET columnname = NULL
    • @Django 是的,用 null 更新表列(一定要删除键约束),然后创建自增主键。Mysql 会为你做休息。
    • @Pekka Ugh :( 感谢您的帮助,但是当我运行该查询时,我得到了相同的消息:#1062 - Duplicate entry '0' for key 1
    • @Django 你的栏目有默认值吗?
    【解决方案2】:

    试试这个: alter table Persons modify id integer unsigned primary key auto_increment;

    id 是感兴趣的列

    【讨论】:

    • 我会尝试这个,但我只是解决了这个问题。感谢您的尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2013-01-15
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 2014-10-19
    相关资源
    最近更新 更多