[英]Removing complete duplicates in SQL
我有一个数据库,其中包含数千行中25个的2个副本。 如何执行命令以删除其中每个命令? 该表是一个包含2个外键的表。
例:
cID | sID
1 | 1
1 | 23
1 | 65
2 | 45
2 | 45 -> remove
2 | 89
3 | 1
3 | 65
3 | 107
...
一种解决方案是创建另一个表:
create table replacement (cID ...., sID ....);
# Only insert unique rows, which may be long
insert into replacement select distinct cID, sID from origtable;
# remove constraints from linked tables to origtable
# add same constraints to replacement
# add unique compound index on (cID,sID) to replacement
drop table origtable;
alter table replacement rename to origtable;
当然,这假设您的origtable仅包含这两列。
SELECT DISTINCT
是您的朋友。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.