将一个满了重复条目的列设置为PRIMARY AUTO_INCREMENT?

时间:2015-10-16 04:05:26

标签: mysql

我有大约100,000行唯一数据。客户说他想要一个名为id的列是auto_incrementing和主键。现在,它充满了0。我到底该怎么做?

当我尝试将其设置为auto_increment时,MySQL表示该列必须是主要的,并且只能有1个auto_increment列。

当我尝试将其设置为主键时,它会显示重复的条目,因为该列中的所有行都包含“0”。

1 个答案:

答案 0 :(得分:1)

我建议删除ID列并重新创建它,如下所示:

create table test (id int, name varchar(50));
insert into test values (0, 'john'), (0, 'matt'), (0, 'tom');

alter table test add primary key(id);
ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'

alter table test drop id;
alter table test add id int primary key auto_increment;

select * from test;
+------+----+
| name | id |
+------+----+
| john |  1 |
| matt |  2 |
| tom  |  3 |
+------+----+

首先备份您的数据!