首頁 > 後端開發 > Golang > 如何修復 Gorm 批量插入期間的列計數不匹配錯誤?

如何修復 Gorm 批量插入期間的列計數不匹配錯誤?

Linda Hamilton
發布: 2024-11-25 09:30:12
原創
534 人瀏覽過

How to Fix Gorm's Column Count Mismatch Error During Bulk Inserts?

解決Gorm 陣列介面中的列計數不符

嘗試使用Gorm 的Exec 方法與陣列介面執行批次插入時,出現錯誤可能會發生,表示列數不符。當提供的值與 SQL 查詢中定義的列數不符時,就會出現此錯誤。

要解決此問題,請確保使用 ... 運算子展開傳遞給 Exec 方法的值。這告訴編譯器將切片元素視為單獨的參數,而不是將整個切片作為單一值傳遞。

下面更新的程式碼示範了... 運算子的正確用法:

tx := dB.GetWriteDB().Begin()
sqlStr := "INSERT INTO city(code, name) VALUES (?, ?),(?, ?)"
vals := []interface{}{}

vals = append(vals, "XX1", "Jakarta")
vals = append(vals, "XX2", "Bandung")

tx.Exec(sqlStr, vals...)

tx.Commit()

if err := tx.Error(); err != nil {
    // handle error
}
登入後複製

透過使用... 運算符,vals 切片中的值會擴展為單獨的參數,然後將這些參數正確指派給SQL 語句中的對應欄位。這消除了列數不匹配並允許成功的批量插入。

以上是如何修復 Gorm 批量插入期間的列計數不匹配錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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