ホームページ > データベース > mysql チュートリアル > MySQL の「ON DUPLICATE KEY UPDATE」は挿入と更新の両方をどのように処理できるのでしょうか?

MySQL の「ON DUPLICATE KEY UPDATE」は挿入と更新の両方をどのように処理できるのでしょうか?

Patricia Arquette
リリース: 2025-01-24 02:26:08
オリジナル
332 人が閲覧しました

How Can MySQL's `ON DUPLICATE KEY UPDATE` Handle Both Inserts and Updates?

MySQL の ON DUPLICATE KEY UPDATE: 挿入と更新の効率的な管理

データベース操作では、多くの場合、新しい行を挿入すると同時に、一致する一意のキーを使用して既存の行の更新を処理する必要があります。 MySQL の強力な INSERT ... ON DUPLICATE KEY UPDATE ステートメントは、この一般的な問題をエレガントに解決します。

課題: 重複エントリの回避

目標はテーブルに新しい行を追加することですが、同じ一意のキー (ID など) を持つ行がすでに存在する場合は、重複を作成するのではなく、その既存の行を更新します。

解決策: INSERT ... ON DUPLICATE KEY UPDATE

この 1 つのコマンドは、挿入と更新の両方の機能を実現します。

  • 挿入: 一致する一意のキーが存在しない場合は、指定された値で新しい行が挿入されます。
  • 更新: 同じ一意のキーを持つ行がすでに存在する場合、その行内の指定された列が指定された値で更新されます。

例:

次のクエリについて考えてみましょう:

<code class="language-sql">INSERT INTO my_table (id, name, age) VALUES (1, 'Alice', 30) ON DUPLICATE KEY UPDATE name = 'Alice', age = 30;</code>
ログイン後にコピー

内訳は次のとおりです:

  • id = 1name = 'Alice'、および age = 30 を含む行を挿入しようとします。
  • id = 1 がすでに存在する場合、ON DUPLICATE KEY UPDATE 句が有効になります。
  • 既存の行の name 列と age 列は、クエリで指定された値に更新されます。 これにより、新しいデータが既存のレコードと効果的にマージされます。

このアプローチはデータベース管理を効率化し、重複エントリを防止し、単一の簡潔な SQL ステートメントでデータの一貫性を確保します。

以上がMySQL の「ON DUPLICATE KEY UPDATE」は挿入と更新の両方をどのように処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート