ALTER TABLE tablename ADD UNIQUE (`first_id`, `second_id`);
Проблема в моем случае стала ребром потому что были найдены неуникальные записи, чего и не должно было быть, и чего можно было ожидать.
Гугл подсказал много разных решений. В основном они сводились к 2 решениям
- созданию временной таблицы, переносу туда уникальных данных, удаление старой таблицы и переименование новой
- писанине скрипта который все поправит
Я уже было и начал писать скрипт который все это поправил бы но вдруг нашел оптимальное решение:
ALTER IGNORE TABLE tablename ADD UNIQUE (`shared_feed_id`, `post_id`);
Добавляем всего одно поле и получаем то что надо. Теперь если при создании индекса встречаются неуникальные поля, они удаляются. Вот такое простое решение не совсем сложной задачи и кривых скриптов :)
Happy coding !
0 comments:
Post a Comment