45

UNIQUE KEY を追加しようとしているときに、MySQL でエラーが発生しました。これが私がやろうとしていることです。VARCHAR(100) である「unique_id」という列があります。テーブルに定義されたインデックスはありません。次のエラーが表示されます。

#1062 - Duplicate entry '' for key 'unique_id' 

UNIQUE キーを追加しようとすると。これは、phpMyAdmin での設定方法のスクリーンショットです。

ここに画像の説明を入力

phpMyAdmin によって生成される MySQL クエリは次のとおりです。

ALTER TABLE  `wind_archive` ADD  `unique_id` VARCHAR( 100 ) NOT NULL FIRST ,
ADD UNIQUE (
`unique_id`
)

私は過去にこの問題を抱えていて、解決したことがないので、テーブルを最初から再構築しました。残念ながら、この場合、テーブルには既に多くのエントリがあるため、それを行うことはできません。ご協力いただきありがとうございます!

4

6 に答える 6

54

エラーはそれをすべて言います:

Duplicate entry '' 

したがって、次のクエリを実行します。

SELECT unique_id,COUNT(unique_id)
FROM yourtblname
GROUP BY unique_id
HAVING COUNT(unique_id) >1

このクエリでも問題が表示されます

SELECT *
FROM yourtblname
WHERE unique_id=''

これにより、重複する値がある場所が表示されます。重複のあるフィールドに一意のインデックスを作成しようとしています。最初に重複データを解決してから、インデックスを追加する必要があります。

于 2013-07-24T01:32:26.923 に答える