Kemas Kini Baris Pukal yang Cekap dalam PostgreSQL
Mengemas kini berbilang baris secara pukal dalam satu pertanyaan ialah pengoptimuman biasa yang digunakan untuk meningkatkan prestasi pangkalan data. PostgreSQL menyediakan mekanisme yang berkuasa untuk memudahkan proses ini.
Pendekatan Jadual Terbitan
Satu pendekatan berkesan untuk kemas kini pukal dalam PostgreSQL ialah menggunakan jadual terbitan. Pendekatan ini melibatkan mencipta jadual sementara dengan kemas kini yang diingini dan kemudian menggunakannya untuk mengubah suai jadual sasaran.
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;
Pertanyaan ini mencipta jadual terbitan v dengan kemas kini baris tertentu. Kenyataan UPDATE kemudian menggunakan jadual ini untuk mengubah suai jadual t. Klausa WHERE memastikan kemas kini hanya digunakan pada baris yang betul.
Contoh Bahasa Go
Untuk melaksanakan pertanyaan ini dalam Go, anda boleh menggunakan coretan kod berikut :
import ( "context" "database/sql" "fmt" ) func main() { db, err := sql.Open("postgres", "host=localhost user=postgres password=password dbname=postgres sslmode=disable") if err != nil { panic(err) } ctx := context.Background() 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.ExecContext(ctx, query) if err != nil { panic(err) } fmt.Println("Rows updated successfully.") }
Faedah Jadual Terbitan Pendekatan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kemas Kini Baris Pukal dengan Cekap dalam PostgreSQL Menggunakan Jadual Terbitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!