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

単一のクエリを使用して PostgreSQL の複数の行を効率的に更新するにはどうすればよいですか?

DDD
リリース: 2025-01-12 22:46:44
オリジナル
422 人が閲覧しました

How Can I Efficiently Update Multiple Rows in PostgreSQL Using a Single Query?

PostgreSQL の単一クエリ更新: パフォーマンスの向上

PostgreSQL は、多くのデータベース システムと同様、単一のクエリを使用して複数の行を同時に更新する効率的な方法を提供します。このアプローチにより、特に大量のデータセットを扱う場合、パフォーマンスが大幅に向上します。

UPDATE 句を含む SET ステートメントは、条件付き更新の簡単な方法を提供します。 たとえば、column_a のさまざまな値に基づいて column_b を変更するには、次の簡潔な構文を使用できます。

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

ただし、複数の列を含むより複雑な更新の場合、UPDATE ... FROM 構造は優れた柔軟性を提供します。これには、更新を指定するための一時マッピング テーブルの構築が含まれます。

column_a に基づいて column_ccolumn_b の両方を更新する例を示します。

<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>
ログイン後にコピー

このクエリは、VALUES 句を利用してマッピング テーブル c を定義し、一致する test 値に基づいて新しい値を column_b 内の既存の行に効果的にリンクします。 この合理化されたアプローチにより、単一のクエリ内で効率的な複数列の更新が可能になります。

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

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