我的 MySQL 中有一个表有重复项。我尝试删除重复项并保留一个条目。我没有主键
我可以通过以下方式找到重复项:
select user_id, server_id, count(*) as NumDuplicates
from user_server
group by user_id, server_id
having NumDuplicates > 1
但不能删除它们:
ALTER IGNORE TABLE `user_server`
ADD UNIQUE INDEX (`user_id`, `server_id`);
甚至 SET foreign_key_checks = 0;不管用。 错误代码:1062。键“user_id_3”的重复条目“142-20”
MySQL 版本:5.5.18 引擎:InnoDB
还有其他方法吗?
最佳答案
因为你使用了INNO DB,
一个简单的技巧:
set session old_alter_table=1;
ALTER IGNORE TABLE `user_server`
ADD UNIQUE INDEX (`user_id`, `server_id`);
set session old_alter_table=0;
这样就可以了
关于MySQL 重复错误与 ALTER IGNORE TABLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27492732/