プログラムでその場でユーザーを作成して古いデータベースと同期するスクリプトがあります。しばらくの間、それは非常にうまくいっています。ユーザーを挿入しようとすると、突然、重複キーエラーでエラーが発生し始めました。正確なエラーは次のとおりです。
Duplicate entry 'user@email.com' for key 2 query: INSERT INTO users (name, mail, status, pass, created).....
そこでクエリを実行すると、mysql コンソールからこのエラーを直接再現できます。したがって、ここで問題が奇妙になります。エントリ「user@email.com」はユーザーテーブルのどこにも存在しません。したがって、データベースにこの電子メールアドレスのレコードがないため、重複エントリエラーが発生することに当惑しています。
これはmysqlコンソールの直接コピー/貼り付けです。ユーザーを保護するために機密データが変更されています
mysql> INSERT INTO users (name, mail, status, pass, created) VALUES ('username', 'user@email.com', 1, 'encryptedpassword', 1294946026);
ERROR 1062 (23000): Duplicate entry 'user@email.com' for key 2
mysql> select * from users where mail='user@email.com';
Empty set (0.00 sec)