Как создать уникальный индекс при том, что в таблице есть дубликаты

Естественно, база MySQL не позволит создать уникальный индекс, если у вас уже есть дубликаты в таблице. Первое, что приходит на ум — это сначала удалить каким-то образом дублированные записи, а потом уже создать новый уникальный индекс. Но все становится еще сложнее, если уникальный индекс состоит из нескольких полей. Удаление записей из большой таблицы может занять огромное время. Оказывается есть очень простое решение, о котором я сначала и не знал.

Вот обычный запрос на добавление составного уникального индекса, который будет ругаться, если в таблице уже имеются дубликаты:

ALTER TABLE `table_name` ADD UNIQUE INDEX `my_unique_index` (`field1`, `field2`);

А вот и киллер фича. Такой же запрос, только он мало того, что быстро создаст индекс, к тому же сам уберет из таблицы дубликаты:

 ALTER IGNORE TABLE `table_name` ADD UNIQUE INDEX `my_unique_index` (`field1`, `field2`);

 Не благодарите. ;)



5 Комментариев

  1. Rebtuck | Май 30, 2019

    Propecia Cortisol Amoxicillin Merck cheapest levitra 20mg Buy Clomid Online No Prescription Uk

  2. Lesorem | Май 31, 2019

    Buy Tamoxifen No Prescription Uk Buy Gsk Propecia cialis tablets for sale Online Viagra Erfahrung Leukemia By Antibiotic Amoxicillin

  3. RandVow | Июнь 5, 2019

    Provera Veraplex Without Dr Approval In Internet Cephalexin For Folliculitis cialis overnight shipping from usa Impetigo Amoxicillin Miglior Prezzo Kamagra Prezzi Cialis Generico

  4. Austrus | Июнь 14, 2019

    Precio Viagra En Farmacias Sin Receta How Do I Receive Free Viagra Trials Order Clonidine Online Overnight Amoxicilina Website

  5. Lesorem | Июнь 14, 2019

    Propecia Malaga Priligy Farmacias Ecuador Tarif Du Levitra En Baisse Fluoxetine Uk Buy

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Комментарий: