Форум: "Базы";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
ВнизИ снова про удаление запсией Найти похожие ветки
← →
Виктор (2003-10-01 11:39) [0]Добрый день, Мастера!
Почему такой запрос SQL удаляет ВСЕ повторяющиеся записи. Нужно только избыточные.
DELETE FROM mytable A
WHERE 1<(SELECT count(*) FROM mytable B
WHERE (A.ULx=B.ULx) AND
(A.ULy=B.ULy) AND
(A.URx=B.URx) AND
(A.URy=B.URy));
Вообщем надо, чтобы запрос удалил лишние записи из таблицы mytable, чтобы четвёрка значений в полях ULx, ULy, URx и URy (тип FLOAT, не ключевые) стала уникальной. Обязательно ли применять в таких случаях составной ключ? Количество записей не большое (около 1000)
Заранее благодарен!
← →
Vlad (2003-10-01 11:46) [1]Составной ключ нужен лишь для повышения быстродействия. Хотя в твоем случае (1000 записей) можно и не применять.
Удаляются только избыточные записи
← →
Виктор (2003-10-01 12:00) [2]> Vlad
Читал Вашу ветку про 12 млн записей... Здорово... НО
Составил я запрос в Аксессе на повторы, который выдал 9 записей. Запускаю этот запрос... выдаётся окошко, мол сейчас удалю 9 записей! Это как? Получается окошко врёт!
← →
Vlad (2003-10-01 12:10) [3]Значит эти 9 записей былы избыточными. Не понимаю, в чем вопрос.
← →
Sandman25 (2003-10-01 12:18) [4]Возможно, Access работает иначе и действительно удалит все повторяющиеся записи. Еслди так, то нужно писать другие запросы :)
← →
Виктор (2003-10-01 12:30) [5]> Vlad
Я протестировал данный запрос на другой таблице применительно к целочисленным полям - всё работает. Значит не в запросе дело. Может каким-то образом FLOAT оказывает своё влияние... не знаю. Буду разбираться дальше. Одно я понял - запрос верный!Меня настораживало предложение FROM. С этими A и B...
> Значит эти 9 записей былы избыточными
Нет. Повторов 9 из них 5 избыточных записей. Согласись, это можно и вручную сосчитать ;)
Всё равно, спасибо тебе, Vlad!
На этом ветку считаю закрытой.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c