phpMyAdmin:Ошибка MySQL 1062 — повторяющаяся запись
-
30-09-2019 - |
Вопрос
Я подключаюсь к пользователю «root» к своей «тестовой» базе данных, которую я размещаю локально для разработки.Среди прочего у меня есть таблица «рейтингкомментарий».По какой-то причине, когда я нажимаю на таблицу «рейтингкомментарий», 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."
Но я до сих пор не совсем понимаю ошибку!Я использую первичный ключ, который автоматически увеличивается для всех моих таблиц, поэтому проблем с таблицей возникнуть не должно.У меня была еще одна таблица с именем «Рейтинг», в которой был столбец «Комментарий».Может быть, это вызывает проблемы?
Решение
Быстрая починка:
REPAIR TABLE `phpmyadmin`.`pma_history`
Если это не удается, я бы просто обрезал / опорожню таблицу.
TRUNCATE TABLE `phpmyadmin`.`pma_history`
Хотя PHPMYADMIN имеет место в моем панели инструментов, я лично не использую его внутреннюю БД.
Приложение
Таблицы MyIsam могут легко стать повреждены. Пара причин, которые обычно ударяют меня: если MySQL не завершен должным образом, или если таблица имеет индекс FullText, а файл StopWord на диске изменился.
Просто заявил, REPAIR
Просто проверяет файл данных для ошибок (и в зависимости от ваших параметров, снова делает его использованием) и переписывает файл индекса. Справедливое предупреждение: с MyISAM, восстановление таблицы может часто топить все ваши данные в этой таблице, чтобы сделать его usable
. Отказ Видеть док Больше подробностей.
Поиск Google, относящийся к этой таблице PMA, как правило, ведет меня к это.
Другие советы
Похоже, это внутренняя ошибка.Вы отправили этот запрос:
SELECT * FROM `ratingcomment`
phpMyAdmin пытается записать такое действие в свой внутренний журнал событий, но это не удается.Если вы ищете в Google pma_history
вы найдете несколько ссылок на поврежденную такую таблицу.
Я советую вам найти другой SQL-клиент (например, HeidiSQL) и попытаться восстановить базу данных phpMyAdmin.
Я знаю, что это вроде поздно, но у меня была такая же проблема и хотела поделиться тем, что я сделал.
В PHPMYADMIN я пошел на вкладку «Таблица» и только что увеличил значение «Автозаключение» в разделе «Параметры таблицы» и вставила фиктивную запись.