ホームページ >データベース >mysql チュートリアル >重複キーの INSERT と UPDATE: MySQL での競合を処理するには?

重複キーの INSERT と UPDATE: MySQL での競合を処理するには?

DDD
DDDオリジナル
2024-11-27 03:18:141017ブラウズ

INSERT vs. UPDATE on Duplicate Keys: How to Handle Conflicts in MySQL?

重複キーの処理について

データベース テーブルに一意の値を挿入するときに、重複レコードが検出されるシナリオがよく発生します。このような場合、競合の処理方法を決定するオプションがあります。

INSERT IGNORE と INSERT ON DUPLICATE KEY UPDATE

INSERT IGNORE ステートメントは、すべてのエラーを単純に無視します。そして行の挿入を続けます。ただし、予期せぬ結果やデータの不整合が生じる可能性があるため、これはお勧めできません。

代わりに、より適切なオプションは INSERT ON DUPLICATE KEY UPDATE です。これにより、競合が発生した場合の更新アクションを指定できます。あなたの場合、一意のキーがタグフィールドである場合、次の構文を使用できます:

INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY UPDATE tag=tag;

このステートメントは、指定された値を挿入しようとします。いずれかのタグがすでに存在する場合、update 句は単純にタグ値をそれ自体に設定し、重複するタグを事実上無視します。

クエリのテスト

クエリの実行次の出力が表示されます:

Query OK, 0 rows affected (0.07 sec)

これは、重複したタグが無視され、残りの行が正常に処理されたことを確認します。挿入されました。

以上が重複キーの INSERT と UPDATE: MySQL での競合を処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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