2017-03-23 10 views
1

これはキャッチです、それはat line 799569と言いますが、実際のSQLファイルを開いてその行に行った後は問題ありません。また、データベースにはその行に挿入されたデータが含まれています。エラーは他の場所にある必要があります。コードERROR 1062(23000)の重複エントリでMysqlのインポートエラーをデバッグする方法

エラーにはERROR 1062 (23000) at line 799569: Duplicate entry '1' for key 'PRIMARY'以外の何も表示されません。それほど有益ではありません。

Mysqlのインポートをデバッグするにはどうすればよいですか?

+0

私は、ファイルをインポートする前にテーブルを切り捨ててください。またはテーブルの構造が正しくありません。たとえば、PRINARYインデックスがありますが、インクリメントがありません –

+0

プロジェクトのデータベース移行ファイルの1つが1行のデータを挿入していたため、インポートに重複エントリがありました。 –

答えて

2

メッセージは実際には非常に有益です。これは、行799569に挿入しようとしているID 1が既に表に入っていることを意味しますが、主キーに重複する値がないため、そのエラーが発生します。

INSERT IGNOREまたはINSERT ... ON DUPLICATE KEY UPDATEのいずれかを使用して解決できます。キーが既にテーブルに存在する場合、最初のキーは挿入をスキップし、もう1つは既存のキーを新しい値で更新します。この2つのオプションの詳細については、here on SOまたはMySQL documentationを参照してください。

+0

mysqlのドキュメントをリンクするのはなぜですか – Rahul

+0

あなたの権利は、あまりにもあります –

+0

あなたはそうです、メッセージは有益です。問題は、データベース移行ファイルが行を挿入していたことです。私はコードレビューに合格したのでそれを知る方法がなかったので、問題はインポートスクリプトとデバッグ出力が間違っているとみなしていました。答えをありがとう。 –

関連する問題