Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melaksanakan Kemas Kini Pukal dengan Cekap dalam PostgreSQL menggunakan Go?
Apabila berhadapan dengan keperluan untuk mengemas kini berbilang baris dalam pangkalan data PostgreSQL, pendekatan tradisional melibatkan pelaksanaan kenyataan UPDATE yang berasingan untuk setiap baris. Walau bagaimanapun, atas sebab prestasi, selalunya wajar untuk melaksanakan satu kenyataan KEMASKINI untuk mengemas kini berbilang baris sekaligus.
Satu kaedah berkesan untuk mengemas kini pukal dalam PostgreSQL ialah menggunakan jadual terbitan. Teknik ini melibatkan mencipta jadual sementara dengan kemas kini yang diingini, kemudian menggunakan data dalam jadual itu untuk mengemas kini jadual sasaran.
Pertimbangkan senario berikut di mana kami menyasarkan untuk mengemas kini berbilang baris dalam jadual "jadual" dengan yang baharu nilai untuk lajur "column_a" dan "column_b":
import ( "database/sql" _"github.com/jackc/pgx/v4/stdlib" // PostgreSQL driver ) func main() { db, err := sql.Open("pgx", "host=localhost port=5432 dbname=test user=postgres password=mysecretpassword") if err != nil { panic(err) } defer db.Close() // Prepare the derived table with updated values query := `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;` _, err = db.Exec(query) if err != nil { panic(err) } // Optionally, you can verify the updated rows rows, err := db.Query("SELECT * FROM table WHERE id IN (1, 2)") if err != nil { panic(err) } defer rows.Close() for rows.Next() { var id int var columnA, columnB string if err := rows.Scan(&id, &columnA, &columnB); err != nil { panic(err) } fmt.Printf("ID: %d, Column A: %s, Column B: %s\n", id, columnA, columnB) } }
Pendekatan ini menawarkan fleksibiliti dalam menambah atau mengalih keluar baris dan lajur dalam jadual terbitan tanpa mengubah pertanyaan utama. Ia juga membantu mengelakkan ralat tidak disengajakan berbanding dengan menyatakan berbilang kenyataan KEMASKINI secara eksplisit.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kemas Kini Pukal dengan Cekap dalam PostgreSQL menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!