2015-10-16 34 views
0

我有大約100,000行唯一的數據。客戶說他想要一個名爲id的列是auto_incrementing和主鍵。現在,它充滿了0。我究竟會如何去做這件事?將重複項設置爲PRIMARY AUTO_INCREMENT?

當我嘗試將其設置爲auto_increment MySQL時,表示該列需要爲主,並且只能有1個auto_increment列。

當我嘗試將它設置爲主鍵時,它表示重複條目,因爲該列中的所有行都包含「0」。

+0

首先更新列值。然後更改列屬性。 – RubahMalam

+0

當我希望他們從1自動增加時,我會更新它們到什麼程度? – User

+0

你可以用變量來做。但是,請分享您的表格結構和樣本數據,並讓我們看看,如果我們可以用其他列更新它們而不使用變量。 – RubahMalam

回答

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 | 
+------+----+ 

讓您的數據備份第一,但!