如何删除违反唯一性约束的数据?
我有一个表,我想为其添加唯一性约束。表中有违反该约束的数据,我想删除它。在这一点上,我并不关心我丢失了哪些数据,只关心最终的数据是好的。
我的第一次尝试是使用“create table like”来复制表,使用alter table添加唯一键,以及将数据从旧表复制到新表。
不幸的是,最后一步复制了所有的数据,并且没有抱怨唯一性。
发布于 2010-07-23 06:58:48
这将添加唯一索引并删除重复项:
ALTER IGNORE TABLE your_table ADD UNIQUE INDEX your_table_index (...);来自the docs:
SQL是对标准
的MySQL扩展。它控制如果新表中存在唯一键上的重复项,或者在启用严格模式时出现警告,ALTER TABLE如何工作。如果未指定IGNORE,则会在发生重复键错误时中止并回滚复制。如果指定了IGNORE,则唯一键上有重复项的行将只使用第一行,其他冲突行将被删除。不正确的值将被截断为最匹配的可接受值。
https://stackoverflow.com/questions/3314172
复制相似问题