この記事では、PostgreSQL データベースで単一のクエリを使用して複数行のデータを更新する方法について説明します。 PostgreSQL は複数行の直接更新をサポートしていませんが、この目標を達成するにはいくつかの方法があります。
1 つのアプローチは、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>
構文を使用することです。これは、挿入機能と更新機能を 1 つのクエリに組み合わせたものです。ただし、この方法では、更新する行を識別する一意のインデックスを列に作成する必要があります。 INSERT ... ON CONFLICT ... UPDATE
以上が単一の PostgreSQL クエリで複数の行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。