优化 PostgreSQL 多行更新
高效更新 PostgreSQL 中的大量行对于数据库管理至关重要。 虽然单独的 UPDATE 语句有效,但 PostgreSQL 提供了更有效的批量更新方法。
一种方法使用带有多个 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中文网其他相关文章!