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

Mysql 尝试将数据从一列复制到同一sql表中的另一列时出错,mysql,sql,Mysql,Sql,我尝试使用phpmyadmin中的SQl选项卡将列username中的值复制到同一个表中的列email中,但出现了一个错误,我不知道如何修复它 我正在尝试ff代码: update `users` set `username` = `email` 但我得到了一个错误: 1062-密钥“用户名”的重复条目 有人能帮我修一下吗? 谢谢你对users.username有一个独特的约束/索引,这是完全合理的。您正在尝试将用户设置为现有值 您可以使用查询查找重复的值: select u.* from u

我尝试使用phpmyadmin中的SQl选项卡将列username中的值复制到同一个表中的列email中,但出现了一个错误,我不知道如何修复它

我正在尝试ff代码:

update `users`
set `username` = `email` 
但我得到了一个错误:

1062-密钥“用户名”的重复条目

有人能帮我修一下吗?
谢谢

你对users.username有一个独特的约束/索引,这是完全合理的。您正在尝试将用户设置为现有值

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

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

如果要将用户名复制到电子邮件,则应更改对账单中的顺序:

update users set email = username
username属性添加了唯一约束,这就是为什么您的查询不可用 执行成功。我想你需要拷贝用户名 电子邮件属性中的属性数据和您的查询序列不匹配 正当请执行下面的查询

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