phpMyAdmin: ошибка MySQL 1062 - повторяющаяся запись - PullRequest
3 голосов
/ 02 декабря 2010

Я подключаюсь с пользователем «root» к моей «тестовой» базе данных, которую я размещаю локально для разработки.Среди прочего у меня есть таблица «рейтингкомментарий».Почему-то, когда я нажимаю на таблицу «ratingcomment», phpMyAdmin показывает мне следующую ошибку:

Fehler

    SQL-Befehl: 

    INSERT INTO  `phpmyadmin`.`pma_history` (

    `username` ,
     `db` ,
     `table` ,
     `timevalue` ,
     `sqlquery`
    )
    VALUES (
    'root',  'test',  'ratingcomment', NOW( ) ,  'SELECT * FROM `ratingcomment`'
    )
    MySQL meldet: 

    #1062 - Duplicate entry '838' for key 'PRIMARY'

Я использовал Google, чтобы найти следующее

"This indicates that you have a UNIQUE or PRIMARY index on a table, and there is a duplicate value someone on one of the values in one of these indexes."

Но я все ещепонять ошибку!Я использую первичный ключ, который автоматически увеличивается для всех моих таблиц, поэтому с таблицей проблем не должно быть.У меня была другая таблица с именем «rating», в которой был столбец «comment».Может ли быть так, что это вызывает проблемы?

Ответы [ 3 ]

7 голосов
/ 02 декабря 2010

Быстрое исправление:

REPAIR TABLE `phpmyadmin`.`pma_history`

Если это не удастся, я просто обрежу / очисту таблицу.

TRUNCATE TABLE `phpmyadmin`.`pma_history`

Хотя phpmyadmin имеет место в моем наборе инструментов, я лично нене используйте его внутреннюю базу данных.

ADDENDUM

Таблицы MyISAM могут легко испортиться.Пара причин, которые обычно меня поражают: если MySQL не отключается должным образом, или если таблица имеет индекс FULLTEXT и файл стоп-слов на диске был изменен.

Проще говоря, REPAIR просто проверяет файл данных на наличие ошибок (и, в зависимости от ваших параметров, делает его пригодным для повторного использования) и перезаписывает индексный файл.Справедливое предупреждение: при восстановлении таблицы MyISAM часто можно поместить все данные в эту таблицу, чтобы она стала usable.Подробнее см. doc .

Поиск в Google, связанный с повреждением этой таблицы pma, привел меня к this .

0 голосов
/ 15 января 2013

Я знаю, что это немного поздно, но у меня возникла та же проблема, и я хотел поделиться тем, что сделал.

В PhpMyAdmin я перешел на вкладку «Операция» таблицы и просто увеличил значение AUTO_INCREMENT в разделе «Параметры таблицы» ивставлена ​​фиктивная запись.

0 голосов
/ 02 декабря 2010

Кажется, это внутренняя ошибка. Вы задали этот запрос:

SELECT * FROM `ratingcomment`

phpMyAdmin пытается записать такое действие в свой внутренний журнал событий, и это не удается. Если вы используете Google для pma_history, вы найдете несколько ссылок на такую ​​таблицу как поврежденную.

Мой совет: найдите другой клиент SQL (например, HeidiSQL) и попытайтесь восстановить базу данных phpMyAdmin.

...