Удаление полных дубликатов в SQL - PullRequest
0 голосов
/ 08 января 2012

У меня есть база данных с 2 копиями по 25 из нескольких тысяч строк.Как я могу выполнить команду, чтобы удалить один из каждого из них?таблица представляет собой таблицу, содержащую 2 внешних ключа.

пример:

cID  |  sID
1    |  1
1    | 23
1    | 65
2    | 45
2    | 45 -> remove
2    | 89
3    |  1
3    |  65
3    | 107
   ...

Ответы [ 2 ]

1 голос
/ 08 января 2012

Одним из решений будет создание другой таблицы:

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;

Это, конечно, предполагает, что ваш исходный файл содержит только эти два столбца.

0 голосов
/ 08 января 2012

SELECT DISTINCT твой друг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...