数据库/SQL 批处理 SQL 语句
问题:
在 Java 中,批处理 SQL 语句使用database/sql 包很简单。如何在 Go 中实现类似的功能?
: 答案:
Go 中的 database/sql 包允许您使用 db.Exec 函数批处理 SQL 语句,它需要可变数量的参数。以下是在 Go 中实现批处理的方法:
构建 SQL 语句:
创建一个包含 SQL 语句的字符串,其中包含占位符您要插入的值。例如:
stmt := "INSERT INTO my_table (field1, field2, field3) VALUES (?, ?, ?)"
分解参数:
为要插入的值创建单独的切片。对于每一行,将值附加到这些切片。
valueStrings := make([]string, 0, len(unsavedRows)) valueArgs := make([]interface{}, 0, len(unsavedRows) * 3) for _, post := range unsavedRows { valueStrings = append(valueStrings, "(?, ?, ?)") valueArgs = append(valueArgs, post.Field1) valueArgs = append(valueArgs, post.Field2) valueArgs = append(valueArgs, post.Field3) }
执行批处理:
使用 db.Exec 函数执行批处理的 SQL 语句,传入参数
_, err := db.Exec(stmt, valueArgs...)
此方法在单次网络往返中执行批处理操作,从而可以高效地插入大量数据。
以上是如何在 Go 的 `database/sql` 包中批量执行 SQL 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!