ホームページ >データベース >mysql チュートリアル >一意のキーに基づいて MySQL 行を挿入または更新するにはどうすればよいですか?

一意のキーに基づいて MySQL 行を挿入または更新するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-26 21:47:15270ブラウズ

How to Insert or Update MySQL Rows Based on a Unique Key?

一意のキーに基づく MySQL 行の挿入または更新

テーブルにデータを追加することを目的としていますが、既存の行を更新しながら新しい行を挿入するという課題に直面するシナリオを考えてみましょう。特定の列 (datenum) の一意性に基づくもの。

この要件に対処するには、最初に質問に例示されている UPDATE ステートメント。ただし、このアプローチは既存の行の変更のみに限定されます。 datenum 値がテーブルに存在しないシナリオでは、アクションは実行されません。

datenum の一意のカラムに基づいて挿入と更新の両方を実行するために、MySQL は INSERT ... ON DUPLICATE KEY UPDATE を提供します。構文。この構文を使用すると、重複キーが見つかった場合に行を自動的に更新する挿入操作を定義できます。

次に、INSERT ... ON DUPLICATE KEY UPDATE 構文を使用した UPDATE ステートメントの改良版を示します。

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE 
  Timestamp=VALUES(Timestamp)

このステートメントでは、一意のキー列 datenum が INSERT 句で使用され、Timestamp の更新された値がON DUPLICATE KEY UPDATE 句。これにより、同じ datenum を持つ行がすでに存在する場合、Timestamp 列は指定された値で更新され、他の列は変更されないことが保証されます。

この手法を採用することで、新しい行の挿入と更新の両方を実現できます。一意のキー列に基づいて、MySQL テーブル内の既存の行を抽出します。

以上が一意のキーに基づいて MySQL 行を挿入または更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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