首頁 >後端開發 >Golang >如何正確使用 Golang 的 ... 運算子透過 GORM 進行批次插入以避免列數不符?

如何正確使用 Golang 的 ... 運算子透過 GORM 進行批次插入以避免列數不符?

Linda Hamilton
Linda Hamilton原創
2024-11-27 06:25:18954瀏覽

How to Correctly Use Golang's ... Operator for Bulk Inserts with GORM to Avoid Column Count Mismatches?

用於批次插入的Golang 連接數組介面

在此上下文中,您嘗試使用GORM 建立批次插入並收到錯誤您產生的SQL 查詢中的列數和值不符。要解決此問題,您需要正確格式化數組介面以產生所需的字串序列。

解決方案在於將切片元素傳遞給 Exec() 函數時使用 ... 擴充運算子。此運算子解壓縮切片並將每個元素作為參數單獨傳遞。

這是解決該問題的修改後的程式碼片段:

tx.Exec(sqlStr, vals...)

在此修改版本中,使用 vals...而不是 vals 來單獨傳遞切片元素。這將產生所需的 SQL 查詢為:

INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')

透過正確傳遞數組接口,您可以成功執行批量插入操作並避免列數不匹配錯誤。請記住始終檢查 Exec() 傳回的錯誤並進行適當處理。

以上是如何正確使用 Golang 的 ... 運算子透過 GORM 進行批次插入以避免列數不符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn