sql -changing列属性为Unique

时间:2017-03-29 10:36:29

标签: mysql sql phpmyadmin

我的“user”表中有一列“email”。我忘记在开始时将电子邮件视为唯一。现在我的数据库中有很多条目,当我尝试将“电子邮件”更改为“唯一”时,它会显示错误“#1062 - 重复条目''用于密钥'电子邮件'”。

我确实有一些用户没有电子邮件条目,这意味着“电子邮件”列中有很多Null值。如何让'电子邮件'现在独一无二。

问题:唯一意味着它不能包含任何空值吗?我需要重新创建一个新表吗?

2 个答案:

答案 0 :(得分:0)

创建备份表。然后通过删除重复的电子邮件来清理备份表,并为空记录放置虚拟电子邮件。

从备份表运行Update sql到原始表。

答案 1 :(得分:0)

你不能制作“电子邮件”如果你的桌子上有多次存在的电子邮件,那么首先必须删除重复的电子邮件,而不是为空值生成虚拟电子邮件