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

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

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

Ответить
Luxor
новенький
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

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

Сообщение Luxor »

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

Произощло следующее: при добавлении большого числа записей в таблицу, почти все записи задвоились или затроились. Соответственно уникальными остались только значения поля "pole1"
Каким образом можно удалить все дубликаты всех записей?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Luxor вам не кажется, что данный вопрос, лучше и правильнее, задавать на форуме типа SQL.RU?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

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

Неверно сконструирована база данных. К языку программирования это действительно не имеет никакого отношения. Мало того, Вы сейчас удалите все дубли тем или иным образом, но вскорости всё это повториться по новой, т.к. БД у Вас не изменилась и допускает в себе дублирование.
Luxor
новенький
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Сообщение Luxor »

да. пожалуй пересмотрю структуру базы данных.
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Код: Выделить всё

DELETE FROM Tab_1 WHERE pole1 NOT IN (SELECT MIN(pole1) FROM Tab_1 GROUP BY pole2,pole3,pole4)
?
Ответить