Удаление дублирующихся записей

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Удаление дублирующихся записей

Сообщение Luxor » 16.02.2011 18:35:08

Здравствуйте!
Есть такая проблема:
база данных Firebird, с таблицей Tab_1
поля в таблице:
pole1 - integer (автоинкрименируемое поле)
pole2 - timestamp
pole3 и pole4 - varchar (150)

Произощло следующее: при добавлении большого числа записей в таблицу, почти все записи задвоились или затроились. Соответственно уникальными остались только значения поля "pole1"
Каким образом можно удалить все дубликаты всех записей?
Luxor
новенький
 
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Re: Удаление дублирующихся записей

Сообщение Mr.Smart » 16.02.2011 18:49:48

Luxor вам не кажется, что данный вопрос, лучше и правильнее, задавать на форуме типа SQL.RU?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Удаление дублирующихся записей

Сообщение Vadim » 16.02.2011 18:56:25

Luxor писал(а):почти все записи задвоились или затроились.

Неверно сконструирована база данных. К языку программирования это действительно не имеет никакого отношения. Мало того, Вы сейчас удалите все дубли тем или иным образом, но вскорости всё это повториться по новой, т.к. БД у Вас не изменилась и допускает в себе дублирование.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Удаление дублирующихся записей

Сообщение Luxor » 16.02.2011 18:57:57

да. пожалуй пересмотрю структуру базы данных.
Luxor
новенький
 
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Re: Удаление дублирующихся записей

Сообщение v-t-l » 16.02.2011 19:00:21

Код: Выделить всё
DELETE FROM Tab_1 WHERE pole1 NOT IN (SELECT MIN(pole1) FROM Tab_1 GROUP BY pole2,pole3,pole4)
?
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

Рейтинг@Mail.ru