ホームページ >データベース >mysql チュートリアル >MySQL に既存の値を組み込みながら、データを効率的に更新/挿入するにはどうすればよいですか?

MySQL に既存の値を組み込みながら、データを効率的に更新/挿入するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-19 07:37:11933ブラウズ

How Can I Efficiently Upsert Data While Incorporating Existing Values in MySQL?

UPSERT 操作: 更新への既存の値の組み込み

挿入と更新を組み合わせた UPSERT は、効率的なデータベース操作を可能にする便利なデータベース操作です。単一のクエリでのデータの挿入と更新。ただし、更新プロセス中に新しい値と既存の値の両方を考慮する必要があるシナリオを処理すると、複雑さが生じる可能性があります。

この例では、列 item_name (主キー) と items_in_stock を持つアイテム テーブルは、項目の存在:

  • 項目が存在しない場合: 指定されたレコードを使用して新しいレコードを作成します情報。
  • 品目が存在する場合: 既存のレコードを更新し、新しい品目を在庫数に追加します。

最初は、取得するために副選択が提案されました。 ON DUPLICATE KEY UPDATE 句の既存の在庫数。ただし、より単純なアプローチが存在します。

INSERT INTO `item`
(`item_name`, `items_in_stock`)
VALUES( 'A', 27)
ON DUPLICATE KEY UPDATE
`items_in_stock` = `items_in_stock` + 27

この改訂された構文では、ON DUPLICATE KEY UPDATE 句が既存の items_in_stock 列を直接参照するため、副選択の必要がなくなります。これにより、更新プロセスが簡素化され、必要な機能が維持され、新しい値と既存の値の両方に基づいて在庫数が正確に更新されます。

以上がMySQL に既存の値を組み込みながら、データを効率的に更新/挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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