一意の条件に基づいた MySql の挿入または更新
MySQL テーブルへのデータの挿入では、多くの場合、更新を実行する前にデータが既に存在するかどうかを確認する必要があります。 。ただし、一意の非主キー列を扱う場合、従来の UPDATE ステートメントでは不十分です。
この場合、ユーザーは、datenum 列が存在しない場合に AggregatedData テーブルにデータを挿入する効率的な方法を探します。または、存在する場合は既存の行を更新します。
解決策: INSERT ... ON DUPLICATE KEY UPDATE
Jai が提案したように、最も適切な解決策は INSERT ... ON DUPLICATE KEY UPDATE 構文を利用することです。
INSERT INTO AggregatedData (datenum,Timestamp) VALUES ("734152.979166667","2010-01-14 23:30:00.000") ON DUPLICATE KEY UPDATE Timestamp=VALUES(Timestamp)
このステートメントは、datenum の場合に挿入を実行します。が見つかりません。存在する場合は、VALUES() 関数で指定された値でタイムスタンプ列を更新します。
説明
VALUES() 関数は、更新に使用される値が INSERT ステートメントで指定された値と同じであることを保証します。これにより、偶発的な列値の更新が防止されます。
INSERT ... ON DUPLICATE KEY UPDATE
以上がMySQL の挿入または更新: 固有の非主キー列を効率的に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。