2013-02-11 83 views
0

我有一个保存用户配置文件信息的数据库表。 有时当用户注册时,它们会被复制到具有相同记录的额外列中,有时不会。MySQL将列更改为唯一

所以,我不知道我是否把列上的电子邮件,以确保用户注册时不重复。

我想应该是这样的:

ALTER TABLE users ADD UNIQUE idx_row_unique(email); 

但如果唯一给予错误,我怎么取消?

只是害怕,我改变它后,我不知道如何撤消它。

回答

2

如果有重复的电子邮件,alter table应该失败。所以你就安全了!

+0

即使像强制数据库创建2列一样的功能? – 2013-02-11 20:41:27

+0

因为我有时候不会为什么,我的功能寄存器与用户保存的2次相同。所以,我想检查它,并保留一个,并删除其他。 – 2013-02-11 20:44:41

+1

因此,如果现在您的字段中有两次相同的邮件,则“alter table”语句将失败。 未来,如果您有将数据保存在数据库中的功能,则需要将其更改为考虑新条件。 – GeorgeVremescu 2013-02-11 21:01:57

0

我会先导出表格结构和数据。这样,如果你需要把它放回去,你就有SQL。

+0

有没有办法导出它?我没有创建数据库 – 2013-02-11 20:38:35

+0

如果您有权访问数据库的phpMyAdmin,那么有一个导出功能。我没有办法通过代码来完成它。 – tjfo 2013-02-11 20:46:29

+0

...我正在使用cmd – 2013-02-11 20:50:24