首頁 > 後端開發 > Golang > 主體

如何在 Go 中正確使用 Gorm 的 `Exec` 的可變參數進行批次插入?

DDD
發布: 2024-11-25 20:26:11
原創
167 人瀏覽過

How to Correctly Use Variadic Parameters with Gorm's `Exec` for Bulk Inserts in Go?

在Golang 中使用可變參數連接數組介面

在嘗試使用Gorm 執行批次插入時,由於以下原因遇到了錯誤列數與提供的值不符。此問題源自於使用陣列介面時查詢格式不正確。

解決方案:

要解決此問題,您需要使用“...”將切片的元素傳遞給帶有可變參數的函數時的運算符。這將指示編譯器單獨傳遞每個元素,而不是將切片值作為單一參數傳遞。

tx.Exec(sqlStr, vals...)
登入後複製

說明:

Tx.Exec()函式有簽章func (tx *Tx) Exec(query string, args ...interface{}) (Result, error)。這表示您可以傳遞可變數量的參數作為第二個參數,指定為 args。透過使用「...」運算符,您可以告訴編譯器將 vals 切片展開為各個參數。

這將導致執行以下查詢:

INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')
登入後複製

以上是如何在 Go 中正確使用 Gorm 的 `Exec` 的可變參數進行批次插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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