用于批量插入的 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中文网其他相关文章!