首頁 > 資料庫 > 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板