首頁 > 後端開發 > Golang > 如何使用「database/sql」在 Go 中執行批次 SQL 語句?

如何使用「database/sql」在 Go 中執行批次 SQL 語句?

DDD
發布: 2024-12-17 16:42:14
原創
118 人瀏覽過

How to Execute Batched SQL Statements in Go using `database/sql`?

在Go中使用database/sql執行批次SQL語句

問題:

在Go中,一個人如何執行多個單一資料庫操作中的SQL語句使用database/sql包?

解決方案:

database/sql 套件提供了一個通用的 Exec() 函數,允許批次 SQL 語句。以下是實現它的方法:

func BulkInsert(unsavedRows []*ExampleRowStruct) error {
    valueStrings := make([]string, 0, len(unsavedRows))
    valueArgs := make([]interface{}, 0, len(unsavedRows)*3)
    for _, post := range unsavedRows {
        valueStrings = append(valueStrings, "(?, ?, ?)")
        valueArgs = append(valueArgs, post.Column1)
        valueArgs = append(valueArgs, post.Column2)
        valueArgs = append(valueArgs, post.Column3)
    }
    stmt := fmt.Sprintf("INSERT INTO my_sample_table (column1, column2, column3) VALUES %s",
        strings.Join(valueStrings, ","))
    _, err := db.Exec(stmt, valueArgs...)
    return err
}
登入後複製

優點:

  • 這種方法透過在單一請求中執行所有語句來減少網路往返次數。
  • 插入多行資料非常高效,如範例。
  • 它很容易實現,因為它利用了 Exec() 函數的可變參數性質。

以上是如何使用「database/sql」在 Go 中執行批次 SQL 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板