在将数据从一个表复制到另一个表时,我遇到了一个问题,其中数据复制了两次,我试图删除重复的行,但不起作用
我已尝试运行此命令
DELETE t1
FROM users t1
JOIN users t2
WHERE t1.id > t2.id
AND t1.email = t2.email;,但即使在等待大约10分钟后,它也会冻结。
我有大约14,000个重复的行,所以我不确定这是否是问题的一部分
发布于 2019-02-14 17:13:54
正如您提到的,您只有14k条记录,您可以通过添加唯一约束验证来创建一个新表,并将数据迁移到新表中。
--创建一个新表
CREATE TABLE new_table AS
SELECT a.*
FROM old_table a
JOIN
( SELECT MIN(id) id
FROM old_table
GROUP
BY email
) b
ON b.id = a.id;--添加约束
ALTER TABLE new_table ADD PRIMARY KEY(id);
ALTER TABLE new_table ADD UNIQUE(email);--重命名并删除旧表。
DROP TABLE old_table;
RENAME TABLE new_table TO old_table;https://stackoverflow.com/questions/54686138
复制相似问题