ホームページ >データベース >mysql チュートリアル >MySQL の挿入または更新: 固有の非主キー列を効率的に処理する方法

MySQL の挿入または更新: 固有の非主キー列を効率的に処理する方法

DDD
DDDオリジナル
2024-12-06 04:53:10659ブラウズ

MySQL Insert or Update: How to Handle Unique Non-Primary Key Columns Efficiently?

一意の条件に基づいた 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

  • データの挿入または更新を行う単一のステートメントを提供し、 code.
  • 重複を防止してデータの整合性を維持します
  • 冗長なチェックを回避することで、最適化されたパフォーマンスを提供します。

以上がMySQL の挿入または更新: 固有の非主キー列を効率的に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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