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中文網其他相關文章!