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_c
と column_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 サイトの他の関連記事を参照してください。