Go を使用した PostgreSQL の複数行の一括更新
大規模なデータセットを扱う場合、多くの場合、データベース テーブル内の複数の行を更新する必要があります。 1 回の操作で。これにより、パフォーマンスが最適化され、コードの複雑さが軽減されます。 PostgreSQL では、さまざまなアプローチを使用して一括更新を実現できます。
1 つのアプローチには、派生テーブルを使用して更新する値のセットを構築することが含まれます。 FROM 句を利用すると、更新する必要がある各行の値を指定できます。例:
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) のペアが含まれています。その後、UPDATE ステートメントは WHERE 句を使用して、v の ID 値をターゲット テーブル t の ID 値と照合します。
Go では、準備済みステートメントを使用してこのクエリを実行できます。
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 } }
このアプローチは、PostgreSQL で一括更新を実行するための簡潔かつ効率的な方法を提供し、行ごとに個別のクエリを実行することなく、単一のクエリで複数の行を更新できるようにします。行。
以上がGo を使用して PostgreSQL で複数行の一括更新を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。