Страница 1 из 1

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

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

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

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

СообщениеДобавлено: 16.02.2011 18:49:48
Mr.Smart
Luxor вам не кажется, что данный вопрос, лучше и правильнее, задавать на форуме типа SQL.RU?

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

СообщениеДобавлено: 16.02.2011 18:56:25
Vadim
Luxor писал(а):почти все записи задвоились или затроились.

Неверно сконструирована база данных. К языку программирования это действительно не имеет никакого отношения. Мало того, Вы сейчас удалите все дубли тем или иным образом, но вскорости всё это повториться по новой, т.к. БД у Вас не изменилась и допускает в себе дублирование.

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

СообщениеДобавлено: 16.02.2011 18:57:57
Luxor
да. пожалуй пересмотрю структуру базы данных.

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

СообщениеДобавлено: 16.02.2011 19:00:21
v-t-l
Код: Выделить всё
DELETE FROM Tab_1 WHERE pole1 NOT IN (SELECT MIN(pole1) FROM Tab_1 GROUP BY pole2,pole3,pole4)
?