尝试将数据从列复制到同一个表sql中的另一列时出错

时间:2015-12-06 21:10:32

标签: mysql sql

我尝试复制列"用户名"中的值。到列"电子邮件"在使用phpmyadmin的SQl选项卡的同一个表中但是我收到错误而且我不知道如何解决它。

我正在尝试使用ff代码:

update `users`
set `username` = `email` 

但我收到错误:

  

#1062 - 重复输入''用于密钥'用户名'

任何人都可以帮我解决吗? 感谢

3 个答案:

答案 0 :(得分:2)

  

用户名属性添加了唯一约束,这就是为什么您的查询没有   执行成功。我认为你需要复制用户名   电子邮件属性中的属性数据和您的查询序列不是   对。请执行以下查询。

update `users`
set `email` = `username`

答案 1 :(得分:0)

users.username上有一个唯一的约束/索引 - 这是完全合理的事情。您正尝试将用户设置为现有值。

您可以使用查询来查找重复的值:

select u.*
from users u
where exists (select 1
              from users u2
              where u2.username = u.email and u2.username <> u.username
             );

答案 2 :(得分:0)

如果您要从用户名复制到电子邮件,则应更改语句中的顺序:

update users set email = username