ホームページ >データベース >mysql チュートリアル >一意のキーに基づいて 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 サイトの他の関連記事を参照してください。