MySQL エラーを解決する方法: 一意のキー制約を持つレコードが重複しています。特定のコード例が必要です。
MySQL データベースを使用すると、一意のキー制約を持つ重複レコードが頻繁に発生します。重要な制約に関する質問です。テーブルにデータを挿入しようとすると、同じ一意キー制約を持つレコードが存在する場合、「キー 'unique_key_constraint' のエントリが重複しています」というエラー メッセージが表示されます。このエラーは、挿入しようとしているレコードが既存のレコードと競合し、一意キー制約に違反していることを示します。
それでは、このエラーが発生した場合、どのように解決すればよいでしょうか?いくつかの一般的な解決策を、具体的なコード例とともに以下に紹介します。
解決策 1: 重複レコードを削除する
最も簡単で直接的な方法は、重複レコードを削除することです。 DELETE ステートメントを使用すると、競合するレコードを持つ重複レコードを削除できます。以下はサンプル コードです:
DELETE FROM 表名 WHERE 唯一键列名 = '冲突值';
たとえば、「students」という名前のテーブルがあり、一意のキー制約列「student_id」があります。ここで、student_id 1001 のレコードを挿入したいとしますが、レコードはすでに存在します。次のコードを使用して、この競合するレコードを削除できます。
DELETE FROM students WHERE student_id = 1001;
解決策 2: 重複レコードを更新する
重複レコードを削除するだけでなく、重複レコードを更新することも検討できます。 UPDATE ステートメントを使用して、競合するレコードの重複であるレコードを更新できます。以下はサンプル コードです:
UPDATE 表名 SET 列名1 = '新值1', 列名2 = '新值2', ... WHERE 唯一键列名 = '冲突值';
たとえば、「users」という名前のテーブルがあり、一意のキー制約列「username」があり、ここでユーザー名「admin」のレコードを挿入したいとします。 , しかし、その記録はすでに存在しています。次のコードを使用して、この競合するレコードの他のフィールド値を更新できます:
UPDATE users SET password = 'newPassword' WHERE username = 'admin';
解決策 3: 重複レコードを無視する
重複レコードを削除または更新したくない場合ただし、無視されるレコードを挿入したい場合は、INSERT IGNORE ステートメントを使用できます。 INSERT IGNORE ステートメントは、レコードの挿入時に一意キー制約と競合するレコードを無視します。以下はサンプル コードです:
INSERT IGNORE INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
たとえば、一意のキー制約列が「order_number」である「orders」という名前のテーブルにレコードを挿入したいとします。次のコードを使用して、競合するレコードの挿入操作を無視できます:
INSERT IGNORE INTO orders (order_number, customer_id, total_amount) VALUES ('1001', '12345', '100.00');
要約すると、MySQL エラー「キー 'unique_key_constraint' のエントリが重複しています」が発生した場合、重複レコードを削除し、重複レコードを更新できます。この問題を解決するには、重複したレコードを無視するかします。状況に基づいて適切なソリューションを選択し、上記のコード例を使用してください。上記の内容がお役に立てば幸いです。
以上がキー「unique_key_constraint」の重複エントリ - MySQL エラーの解決方法: 一意のキー制約の重複レコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。