Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melakukan Kemas Kini Pukal Berbilang Baris dalam PostgreSQL dengan Go?

Bagaimana untuk Melakukan Kemas Kini Pukal Berbilang Baris dalam PostgreSQL dengan Go?

Susan Sarandon
Susan Sarandonasal
2024-12-11 06:14:10716semak imbas

How to Perform Multi-Row Bulk Updates in PostgreSQL with Go?

Kemas Kini Pukal Berbilang Baris dalam PostgreSQL dengan Go

Apabila bekerja dengan set data yang besar, selalunya perlu mengemas kini berbilang baris dalam jadual pangkalan data dalam satu operasi. Ini boleh mengoptimumkan prestasi dan mengurangkan kerumitan kod. Dalam PostgreSQL, kemas kini pukal boleh dicapai menggunakan pelbagai pendekatan.

Satu pendekatan melibatkan penggunaan jadual terbitan untuk membina satu set nilai untuk dikemas kini. Dengan menggunakan klausa FROM, anda boleh menentukan nilai untuk setiap baris yang perlu dikemas kini. Contohnya:

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;

Jadual terbitan v mengandungi pasangan (id, column_a, column_b) yang mewakili kemas kini untuk setiap baris. Kenyataan UPDATE kemudian menggunakan klausa WHERE untuk memadankan nilai id dalam v dengan nilai dalam jadual sasaran t.

Dalam Go, anda boleh melaksanakan pertanyaan ini menggunakan pernyataan yang disediakan:

const updateBulkSQL = `
UPDATE t
SET column_a = v.column_a,
    column_b = v.column_b
FROM (VALUES (, , ),
                 (, , )
         ) v(id, column_a, column_b)
WHERE v.id = t.id;
`

func main() {
    db, err := sql.Open("postgres", "")
    if err != nil {
        // Handle error
    }

    stmt, err := db.Prepare(updateBulkSQL)
    if err != nil {
        // Handle error
    }

    _, err = stmt.Exec(1, "FINISH", 1234, 2, "UNFINISH", 3124)
    if err != nil {
        // Handle error
    }
}

Pendekatan ini menyediakan cara ringkas dan cekap untuk melaksanakan kemas kini pukal dalam PostgreSQL, membolehkan anda mengemas kini berbilang baris dalam satu pertanyaan tanpa perlu melaksanakan pertanyaan berasingan untuk setiap baris.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Kemas Kini Pukal Berbilang Baris dalam PostgreSQL dengan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn