Задать вопрос
CrazySage
@CrazySage
C++ developer

Исправление дублирующихся ключей в БД через PHP

Дано: есть база данных MySQL, на ней крутится форум. Крутится давно, движок форума никто не обновлял, поэтому в базе появились дублирующиеся ключи, что делает невозможным конвертацию форума на другой движок в автоматическом режиме. База немаленькая (несжатый дамп 200 Мб), править ручками очень не хочется, вдобавок:
Не дано: phpmyadmin, cpanel, ssh или любого другого внятного способа работать с базой, только ftp и возможность запускать php скрипты.
Вопрос: Есть ли в таких условиях способ починить базу от дублирующихся ключей не связанный с кучей геммороя и мелкой ручной работы?
Форум XMB
  • Вопрос задан
  • 2352 просмотра
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
@edogs
Одно из самых простых — вешаем уникальный ключ принудительно, и сносим его.
ALTER IGNORE TABLE `backup` ADD UNIQUE ( `title`);
ALTER TABLE `backup` DROP KEY `title`;
Ответ написан
Комментировать
CrazySage
@CrazySage Автор вопроса
C++ developer
В общем второй вопрос — кто-нибудь знает, какая версия PhpMyAdmin еще работала с PHP4? Чтобы не перебирать все :)
Ответ написан
Комментировать
Evengard
@Evengard
Попробуйте поиграться с LIMIT 1,1. Если ничего не возвращает — значит дубля ключа нет, если возвращает — начит есть — придётся фиксить.
Ответ написан
@Hint
SELECT id, COUNT(*) AS cnt FROM table GROUP BY id HAVING cnt > 1
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы