ホームページ >バックエンド開発 >PHPチュートリアル >MySQL にデータを挿入するときに重複エントリを処理するにはどうすればよいですか?

MySQL にデータを挿入するときに重複エントリを処理するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 02:48:02368ブラウズ

How to Handle Duplicate Entries When Inserting Data into MySQL?

MySQL - 挿入時の重複エントリの処理

一意のフィールドを含むデータベースにレコードを挿入すると、重複エントリが発生することがよくありますエラー。これらのエラーにより、新しいレコードのみが挿入されるバッチ挿入操作が中断される可能性があります。

無視して挿入

MySQL は INSERT...IGNORE 構文を提供します。これにより、重複エントリが見つかった場合でもエラーを生成せずに挿入を続行できます。例:

INSERT IGNORE INTO tbl (id, name) VALUES (1, 'John Doe');

id=1 のエントリがすでに存在する場合、ステートメントは新しい行を挿入せずに正常に実行されます。

Replace

REPLACE INTO 構文は、同じ主キーを持つ新しいレコードで既存のレコードを上書きします。これは、最新のデータがテーブルに確実に保存されるようにする場合に便利です。

REPLACE INTO tbl (id, name) VALUES (1, 'Jane Doe');

この場合、id=1 が存在すると、古いレコードが削除され、新しいレコードが作成されます。

ON DUPLICATE KEY UPDATE を使用して挿入

INSERT...ON DUPLICATE KEY UPDATE 構文を使用すると、エントリが重複した場合に実行するアクションを指定できます。に遭遇します。たとえば、既存のレコードを更新できます。

INSERT INTO tbl (id, name) VALUES (1, 'Alice Smith') ON DUPLICATE KEY UPDATE name = 'Alice Smith';

id=1 が存在する場合、既存のレコードの名前は「Alice Smith」に更新されます。

例< /h4>

列 ID と値を持ち、1 つの行を含む tbl という名前のテーブルを考えます: (1, 1).

  • REPLACE:

    REPLACE INTO tbl VALUES (1, 50);

    結果: (1, 50) (既存のレコードを置き換えます)

  • INSERT IGNORE:

    INSERT IGNORE INTO tbl VALUES (1, 10);

    結果: 変更なし (重複エントリを無視します)

  • INSERT WITH ON DUPLICATE KEY UPDATE:

    INSERT INTO tbl VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;

    結果: (1 , 200) (既存のレコードを更新します)

以上がMySQL にデータを挿入するときに重複エントリを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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