ubutu

ubuntuの操作メモ

1871 views

ERROR 1062 (23000) Duplicate entry

以下のSQLでユニークキーを追加を追加しようとしたら、怒られた。

alter table users add unique name(name);

あんまり英語が得意ではないので、てっきり同じユニークキー名があるのかな?と思ってデータベース全体を調べるも、重複はしていなかった。
テストのDBでエラーも起きない。本番のDBでだけ起きる。

キーが重複していないのに、重複しているということはレコードが重複しているのではないか?と当たりをつけた。
もともと重複キーが設定されていないのだから、同じ名前の人が二人登録されてしまっていて、
そこにユニークキーを設定しようとしても、それは無理だ、ということで怒られているのではないかという仮説。

重複しているレコードがないか調べる

以下のSQLを投入してレコードの重複を調査。

SELECT user_id, name FROM `users` group by name having count(name) > 1;

やっぱり重複していた。重複したレコードを削除して、再度ユニークキーを設定したら解決した。

 Duplicate entry '' for key 'name'

って、name列に重複したレコードがありますよって、意味なの?自分の英語力の問題なのか、mysqlが不親切なのかは…気にしたら負けだ。

Page 5 of 9.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626