Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Вниз

Чистка БД от задвоек   Найти похожие ветки 

 
Kley   (2007-09-12 21:23) [0]

Здравствуйте
подскажите плиз как найти в БД
задвоенные записи и потом удалить одну из задвоек
т.е. почистить БД от задвоенных записей
delphi+Tps через ODBC драйвер


 
MsGuns ©   (2007-09-12 21:53) [1]

;)


 
Desdechado ©   (2007-09-12 22:08) [2]

Делаем копию структуры таблицы и потом
INSERT INTO newtbl SELECT DISTINCT * FROM oldtbl
Удаляем старую таблицу, переименовываем новую.


 
Anatoly Podgoretsky ©   (2007-09-12 22:49) [3]

> Desdechado  (12.09.2007 22:08:02)  [2]

А если учесть внешние и первичные ключи, то вешаемся.


 
DrPass ©   (2007-09-12 23:14) [4]

Сперва следует посмотреть, что задвоилось - select bebebe, count(*) from zuzuzu group by bebebe having count(*) > 1, и потом уже думать, как с ними проще расправиться


 
Юрий Зотов ©   (2007-09-13 09:23) [5]

Эва... а как же так БД была сделана, что дубли не допускаются, но требования уникальности не были наложены?


 
Desdechado ©   (2007-09-13 10:40) [6]

> А если учесть внешние и первичные ключи, то вешаемся.
Их можно временно отключить/удалить, а потом восстановить.
Но есть большие сомнения, что в БД с таким мусором есть хоть какие-то ключи.

Юрий Зотов ©   (13.09.07 09:23) [5]
Видимо, требования появились позже, после осознания появления дублей.

DrPass ©   (12.09.07 23:14) [4]
Это попольно. Но уникальность может требоваться на комбинацию полей или на всю строку.


 
Anatoly Podgoretsky ©   (2007-09-13 11:01) [7]

> Desdechado  (13.09.2007 10:40:06)  [6]

Что восстанавливать, это же задача не механическая, а интеллектуальная, только автор знает как значения одного поля влияют на значение в других таблицах, связи то могут быть и не явными и явными и автоинкриментными и далее. При создании новой таблицы и замены ее старой - при автоинкрименте можно выкидывать базу.


 
Ega23 ©   (2007-09-13 11:08) [8]

Я бы всё скриптами на SQL делал

А вообще разработчику такой БД нехило было бы ознакомиться с понятиями "Нормальная форма" с первой по четвёртую включительно.


 
DrPass ©   (2007-09-13 11:51) [9]


> Desdechado ©   (13.09.07 10:40) [6]


> Это попольно. Но уникальность может требоваться на комбинацию
> полей или на всю строку

А какая разница. Ну, укажет человек в запросе вместо одного поля несколько...


 
zdm77   (2007-09-13 18:11) [10]

погодите. АП нужно определится изначально вроде как с тем, что считать задвоенными полями. Иванов и ИВАНОВ или ИвАнОв - это один и тот-же чел? Что в БД небыл предусмотрен признак уникальности? ну ИНН, паспортные данные или другой признак? Если так, то - вешалка. Запустить редактор, открыть таблицу, и методом (с учетом человеческого фактора) пройти по полям и удалить, которые по мнению АП являются задвоенными. Если есть ключи, то удалить сначала значения из ключуемых таблиц.... в общем гемор одназначно.


 
Бакук ©   (2007-09-14 09:09) [11]

http://www.sql.ru/faq/faq_topic.aspx?fid=711



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
2-1189972791
Alexey_K
2007-09-16 23:59
2007.10.14
Окно, подобие понели задач


2-1189955487
олег79
2007-09-16 19:11
2007.10.14
можно ли с помощью диалога OpenDialog открыть не файл а папку?


2-1189943809
Denis_
2007-09-16 15:56
2007.10.14
XOR алгоритм


15-1189770684
NeedForHelpAlways
2007-09-14 15:51
2007.10.14
Как сделать словарь терминов?


3-1181301983
denis24
2007-06-08 15:26
2007.10.14
select top 10





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский