使用MS Access查找重复项并删除它们

时间:2011-08-09 20:21:55

标签: mysql ms-access find duplicates sql-delete

我正在尝试从数据库中删除所有重复项。我在这个网站上找到了以下代码。问题是它删除了我的整个数据库。可悲的是,我对MySQL的了解不足以说明它为什么要删除所有条目,而不仅仅是重复项。

DELETE FROM RosterPool AS t1
WHERE EXISTS (SELECT 1 from RosterPool t2
WHERE t1.Rate = t2.Rate
AND t1.FullName = t2.FullName
AND t1.Last4 = t2.Last4
AND t1.Graduated = t2.Graduated);

有没有办法将所有重复项移到另一个表中,只删除该表?

2 个答案:

答案 0 :(得分:0)

SQL数据库中没有“移动”操作。只有插入,更新和删除。

如果你想安全地播放它,你可以将删除查询变成一个选择查询,看看如果你把它作为一个删除查询运行它会被确定什么,但是没有办法从一个表中“移动”一行到另一个,没有执行insert / select + delete操作序列。

答案 1 :(得分:0)

只需在要删除重复项的列上强制使用uniqe键。 为您编写的列速率添加唯一键:

ALTER TABLE RosterPool ADD UNIQUE (Rate);

如果你已经有重复的行会给你一个错误, 但是通过添加关键字IGNORE,您可以强制它添加uniqe并忽略警告

ALTER IGNORE TABLE RosterPool ADD UNIQUE (Rate);