@inververs

Как быстро добавить уникальный индекс в InnoDB если уже в таблице много не уникальных данных?

Подскажите способ как можно поставить уникальный индекс на 2 поля в старой базе. Просто так он конечно же не добавляется - т.к много не уникальных.
База не большая, около 1.5 миллиона строк.
В идеале хотелось бы вот так, включить индекс - старые данные не трогаются, а новые, в случае не уникальности, не добавляются, если так возможно, если нет, то хоть как-то... не уникальные разрешается удалять.
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
CREATE TABLE `temp` LIKE `old_table`
ALTER TABLE `temp` ADD UNIQUE ...
INSERT INTO `temp` ... SELECT FROM `old_table` ... ON DUPLICATE KEY ...
DROP TABLE `old_table`
ALTER TABLE `temp` RENAME TO `old_table`
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
старые данные не трогаются

Нет, так это не работает.
Индекс или уникальный и он гарантирует уникальность данных или это просто индекс.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Никак
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы