繁体   English   中英

在SQL中删除完整的重复项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM