3

開発のためにローカルでホストしているデータベース「test」にユーザー「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'

私はグーグルを使って次のことを見つけました

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

しかし、私はまだエラーを完全には理解していません!私はすべてのテーブルに対して自動インクリメントする主キーを使用しているので、実際にはテーブルに問題はないはずです。「comment」列を持つ「rating」という名前の別のテーブルがありました。これが問題を引き起こす可能性はありますか?

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 に答える