ホームページ > データベース > mysql チュートリアル > MySQL でアップサートを効率的に実行するにはどうすればよいですか?

MySQL でアップサートを効率的に実行するにはどうすればよいですか?

DDD
リリース: 2025-01-21 11:47:11
オリジナル
552 人が閲覧しました

How Can I Efficiently Perform Upserts in MySQL?

MySQL Upsert 操作: 存在する場合は更新、存在しない場合は挿入

質問:

MySQL で、「Upsert」操作、つまり、行が存在しない場合は新しい行を挿入し、行が存在する場合は既存の行を更新する効率的な方法はありますか?

答え:

はい、MySQL はこの機能を実現するための INSERT ... ON DUPLICATE KEY UPDATE 構文を提供します。以下に例を示します:

例:

INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used` + 1
ログイン後にコピー

手順:

  • INSERT INTO 句は、指定された値を持つ新しい行を挿入しようとします。
  • ON DUPLICATE KEY UPDATE 句は、一意のキーの競合が発生した場合 (つまり、同じ thing_id を持つ行が既に存在する場合) に何が起こるかを定義します。
  • この例では、times_used 列に 1 を追加することで既存の行が更新されます。

利点:

  • 効率的: 単一のクエリを通じて Upsert 操作を実行し、データベースのラウンドトリップ数を削減します。
  • 安全性: 重複行の競合をスムーズに処理し、データの整合性を確保します。
  • 柔軟性: は、新しい行の挿入、既存の行の更新、またはその両方に使用できます。

以上がMySQL でアップサートを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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