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!