2010-12-02 6 views
3

je me connecte avec l'utilisateur « root » sur ma base de données « test » que je serai l'hôte pour le développement local. Entre autres j'ai la table "ratingcomment". Pour une raison quelconque lorsque je clique sur la table « ratingcomment » phpMyAdmin me montre l'erreur suivante:phpMyAdmin: Erreur MySQL 1062 - entrée en double

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' 

je google pour finde les opérations suivantes

"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." 

Mais je ne comprends toujours tout à fait l'erreur! J'utilise une clé primaire, qui s'incrémente automatiquement pour toutes mes tables, donc il ne devrait pas y avoir de problème avec la table. J'avais une autre table nommée "rating" qui avait une colonne "comment". Peut-il être, que cela cause des problèmes?

+0

Quel est le primaire de la table? Interrogez l'enregistrement avec la clé primaire 838 et comparez les valeurs aux valeurs que vous essayez d'insérer dans INSERT. –

Répondre

7

Quick fix:

REPAIR TABLE `phpmyadmin`.`pma_history` 

Si cela échoue, je voudrais simplement tronquer/vider la table. Bien que phpmyadmin ait sa place dans ma boîte à outils, personnellement, je ne l'utilise pas en tant que db interne.

ADDENDA

tables MyISAM peuvent facilement être endommagés. Un couple me frappe habituellement: si MySQL n'est pas arrêté correctement, ou si la table a un index FULLTEXT et que le fichier stopword sur le disque a changé. En termes simples, le REPAIR vérifie simplement le fichier de données à la recherche d'erreurs (et dépend de vos options, le rend à nouveau utilisable) et réécrit le fichier d'index. Juste avertissement: avec MyISAM, la réparation d'une table peut souvent griller toutes vos données dans cette table pour le rendre usable. Voir doc pour plus de détails.

Une recherche google se rapportant à cette table pma corrompue me conduire à this.

+0

Merci: Table de réparation a travaillé!Mais je ne comprends pas très bien ce qui s'est passé, pourquoi j'ai dû réparer la table, et ce que la table de réparation fait réellement! J'apprécierais une petite description et/ou des liens expliquant le problème. –

0

Cela semble être une erreur interne. Vous avez émis cette requête:

SELECT * FROM `ratingcomment` 

phpMyAdmin tente d'écrire une telle action dans son journal des événements internes et il échoue. Si vous Google pour pma_history, vous trouverez plusieurs références à une telle table étant corrompue.

Mon conseil est que vous trouvez un autre client SQL (comme HeidiSQL) et essayer de réparer la base de données phpMyAdmin.

+1

J'apprécierais quelques commentaires au sujet de la downvote, considérant que je dis essentiellement la même chose que la réponse acceptée. –

+0

Ceci est correct, car ce qui s'est passé de mon côté, c'est que notre base de données MySQL est tombée en panne ou quelque chose, alors il se peut que les tables soient corrompues. –

0

Je sais que c'est un peu en retard, mais j'ai eu le même problème et je voulais partager ce que je faisais.

En PhpMyAdmin, je suis allé à l'onglet Opération de la table, et juste incrémentée la valeur AUTO_INCREMENT sous la table des options et insérer un enregistrement fictif.

Questions connexes