ubuntuの操作メモ
1871 views
以下の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/