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

PostgreSQL で複数の行を同時に効率的に更新するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-12 22:56:49
オリジナル
985 人が閲覧しました

How Can I Efficiently Update Multiple Rows Concurrently in PostgreSQL?

PostgreSQL の複数行更新の最適化

PostgreSQL で多数の行を効率的に更新することは、データベース管理にとって非常に重要です。 個々の UPDATE ステートメントは機能しますが、PostgreSQL はバッチ更新のためのより効率的な方法を提供します。

1 つのアプローチでは、複数の UPDATE ... SET 句を含む WHERE 構文を使用します。

<code class="language-sql">UPDATE table
SET
  column_a = 1 WHERE column_b = '123',
  column_a = 2 WHERE column_b = '345';</code>
ログイン後にコピー

ただし、この方法には複数の列にわたる複雑な更新に対する柔軟性がありません。

優れたアプローチでは、値テーブルを含む UPDATE ... FROM 構文を利用します。

<code class="language-sql">UPDATE test AS t SET
  column_a = c.column_a
FROM (VALUES
  ('123', 1),
  ('345', 2)
) AS c(column_b, column_a)
WHERE c.column_b = t.column_b;</code>
ログイン後にコピー

この手法は複数列の更新を簡単に処理します:

<code class="language-sql">UPDATE test AS t SET
  column_a = c.column_a,
  column_c = c.column_c
FROM (VALUES
  ('123', 1, '---'),
  ('345', 2, '+++')
) AS c(column_b, column_a, column_c)
WHERE c.column_b = t.column_b;</code>
ログイン後にコピー

これらの高度な技術により、PostgreSQL でのバッチ更新のパフォーマンスが大幅に向上し、実行時間が短縮され、データベースのメンテナンスが簡素化されます。

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

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