3

我将用户“root”连接到我在本地托管以进行开发的数据库“test”。除其他外,我有表格“ratingcomment”。出于某种原因,当我单击“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'

我用谷歌找到了以下内容

"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”。会不会,这会导致问题?

4

3 回答 3

7

快速解决:

REPAIR TABLE `phpmyadmin`.`pma_history`

如果失败了,我会截断/清空表格。

TRUNCATE TABLE `phpmyadmin`.`pma_history`

虽然 phpmyadmin 在我的工具箱中有它的位置,但我个人不使用它的内部数据库。

附录

MyISAM 表很容易损坏。有几个原因通常会打击我:如果 MySQL 没有正确关闭,或者表有 FULLTEXT 索引并且磁盘上的停用词文件已更改。

简单地说,REPAIR只是检查数据文件是否有错误(并根据您的选项,使其再次可用)并重写索引文件。公平的警告:使用 MyISAM,修复表通常可以烘烤该表中的所有数据usable。有关更多详细信息,请参阅文档

与此 pma 表已损坏有关的谷歌搜索将我引向

于 2010-12-02T18:28:13.440 回答
0

这似乎是一个内部错误。您已发出此查询:

SELECT * FROM `ratingcomment`

phpMyAdmin 尝试在其内部事件日志中写入此类操作,但失败了。如果您使用 Google 搜索,pma_history您会发现对此类表的多个引用已损坏。

我的建议是您找到另一个 SQL 客户端(例如 HeidiSQL)并尝试修复 phpMyAdmin 数据库。

于 2010-12-02T17:31:54.790 回答
0

我知道这有点晚了,但我遇到了同样的问题,想分享我所做的。

在 PhpMyAdmin 中,我转到表的操作选项卡,并在表选项下增加 AUTO_INCREMENT 值并插入一个虚拟记录。

于 2013-01-15T14:41:39.153 回答