2017-05-10 167 views
2

MySQL Table的MySQL的phpMyAdmin错误#1062 - 重复录入 '0' 键 'PRIMARY'

现在我想添加一个主键id列,但它引发错误:

#1062 - Duplicate entry '0' for key 'PRIMARY'

我已经尝试过这个: Add primary key to existing table

+0

正如您所看到的,表中有多个ID为0的条目。主键必须是唯一的。所以你必须使ID的唯一,然后才能添加主键 – Jens

+0

@Jens我需要手动更改它吗? –

+0

是的,我认为这样.. – Jens

回答

2

当你创建一个新的列时,默认值是分配的(在你的情况下是0),所以你需要指定它将有的值(除了你可以告诉它的列是AUTOINC复习,并且它会为你为新的行条目工作)。 你必须改变所有的值是它们之间型动物中,ID键必须是唯一

要改变所有的ID,在MySQL中,你可以这样做:

SET @new_id=0; 
UPDATE your_table 
SET id = @new_id := @new_id + 1 
where id = 0 
+1

我知道这个兄弟,但我忘了添加主键 –

+0

我添加你的方式来更新你的表在mysql :)现在你知道该怎么做 –

+1

感谢兄弟它的工作 –

0

首先请更改表的IDS用以下查询

SET @counter = 1 
UPDATE #tablename 
SET @counter = id = @counter + 1 

然后应用主键。

+0

它显示以下错误#1064 - 你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行的'DECLARE计数器int SET计数器= 0 UPDATE images_proposals SET counter ='处使用正确的语法。 –

+0

我删除了@它不允许我发布 –

相关问题