ホームページ  >  記事  >  データベース  >  キー「unique_key_constraint」の重複エントリ - MySQL エラーの解決方法: 一意のキー制約の重複レコード

キー「unique_key_constraint」の重複エントリ - MySQL エラーの解決方法: 一意のキー制約の重複レコード

WBOY
WBOYオリジナル
2023-10-05 10:00:501122ブラウズ

Duplicate entry for key \'unique_key_constraint\' - 如何解决MySQL报错:唯一键约束重复记录

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。