Replies (61)
-
@datacompboy, Антон, SELECT DISTINCT в другую табличку, снести всё из исходной, а потом вернуть — разве не покатит?
-
@stanis, покатит. но требует другую табличку. а мы решаем хитрые ж пути :)
-
@datacompboy, первичный ключ есть. и есть поле с дублирующимися значениями. нужно оставить только первый из дубликатов, удалив остальные. вот точная формулировка задачи.
-
@norguhtar, Тогда список id-шников внезапно не влезет в максимальный размер запроса.
-
@norguhtar, Мы там пользуемся MS SQL, Oracle 9i, MySQL и PosgreSQL тоже иногда бывает.
-
@norguhtar, В варианте со временной табличкой ничего не зубодробительный. DELETE FROM sometable. Экстремально зубодробительно, да.
-
@norguhtar, Что такое "мало overhead"? Как-то не слишком по-русски. Смысл предложения я не понял вообще.
-
@norguhtar, Спасибо большое, сделал вот так как ты сказал. Супер. =)
-
@stanis, тфу. Дольше отрабатывать будет и сильнее диск насиловать. Вообщем прежде чем что-то делать я бы оценил количество дубликатов и возможно добавил бы еще одну связку в select чтобы получить то что надо удалить. Т.е. чтоб операция была просто in. Если дубликатов мало, то такая операция пройдет быстрее. Если их столько сколько обычных записей, то можно и через табличку. Скорость получим ту же.
-
@norguhtar, Я машинально подумал, что дубликатов больше. Раз эдак в несколько. Шаблон мышления.
-
@norguhtar, Там 50 записей, из них примерно у каждого третьего есть 1 дубликат.