首页  >  文章  >  后端开发  >  如何在 Go 中正确使用 Gorm 的 `Exec` 的可变参数进行批量插入?

如何在 Go 中正确使用 Gorm 的 `Exec` 的可变参数进行批量插入?

DDD
DDD原创
2024-11-25 20:26:11155浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn