首頁 >後端開發 >Golang >如何使用單一查詢有效率地批次更新 PostgreSQL 中的多行?

如何使用單一查詢有效率地批次更新 PostgreSQL 中的多行?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-05 14:24:11181瀏覽

How Can I Efficiently Bulk Update Multiple Rows in PostgreSQL Using a Single Query?

使用單一 PostgreSQL 查詢批次更新多行

使用 Go 更新 PostgreSQL 資料庫中的多行可以透過單一 SQL 高效實現陳述。這種方法提供了一種一次性更新多筆記錄的便捷方法,減少了所需的查詢數量並提高了效能。

為了執行批次更新,我們可以利用衍生表,它是在查詢的範圍。這允許我們指定要更新的行的值。操作方法如下:

UPDATE t
SET column_a = v.column_a,
    column_b = v.column_b
FROM (VALUES (1, 'FINISH', 1234),
             (2, 'UNFINISH', 3124)
     ) v(id, column_a, column_b)
WHERE v.id = t.id;

在此範例中,我們建立一個名為 v 的衍生表,其中包含三列:id、column_a 和 column_b。我們提供兩行的值,它們代表我們想要進行的更新。 WHERE 子句將派生表的 id 欄位與我們正在更新的表 (t) 的 id 欄位進行比對。

這種方法可以輕鬆新增要更新的其他行,只需將更多行新增到衍生表。與編寫多個單獨的更新語句相比,這更不容易出錯。

以上是如何使用單一查詢有效率地批次更新 PostgreSQL 中的多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn