ホームページ > データベース > mysql チュートリアル > MySQL で同様の値を持つ複数のテーブルを効率的に更新するにはどうすればよいですか?

MySQL で同様の値を持つ複数のテーブルを効率的に更新するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-04 00:44:30
オリジナル
384 人が閲覧しました

How to Efficiently Update Multiple Tables with Similar Values in MySQL?

MySQL で同様の値を持つ複数のテーブルを更新する

非正規化のために同じ更新を必要とする 2 つのテーブルがあるシナリオでは、次のことを利用できます。 MySQL によって提供されるマルチテーブル更新。このアプローチにより、単一のステートメントで複数のテーブルにまたがる同時更新が可能になります。

これを実現するには:

  1. 共通の列を特定します: 両方のテーブルのどの列を決定しますか同じ値で更新する必要があります。
  2. テーブルを結合します: INNER JOIN を使用して、共通の列 (ユーザー ID など) に基づいてテーブルを接続します。
  3. 更新を指定します: SET 句で、更新する列とそれに対応する値をリストします。両方のテーブルで値が一貫していることを確認します。
  4. 結果をフィルタリングします: 必要な条件 (WHERE 句など) を追加して、更新する特定の行をフィルタリングします。

たとえば、次のクエリを考えてみましょう:

UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid)
SET
  a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200,
  b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200 
WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1
ログイン後にコピー

ここでは、両方のテーブルの win、streak、score 列が、特定の userid と lid 値に対して増分更新されます。 Table_Two には蓋の列が存在しないため、その値は更新されないことに注意してください。

追加の考慮事項:

  • 複数テーブルの更新は LIMIT をサポートしません。そのため、更新は意図したよりも多くの行に影響を与える可能性があります。
  • ストアド プロシージャまたはトランザクションは、特定の状況ではより適切な制御を提供する可能性があります。

以上がMySQL で同様の値を持つ複数のテーブルを効率的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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