无法使用 GORM 将记录批量插入 MSSQL DB:reflect:在零值上调用reflect.Value.Interface

anj*_*njy 6 sql-server go go-gorm

使用 GORM for MSSQL获取下面的error批量插入操作系统记录

reflect: call of reflect.Value.Interface on zero Value
Run Code Online (Sandbox Code Playgroud)
var users = []User{{Name: "jinzhu1"}, {Name: "jinzhu2"}, {Name: "jinzhu3"}}
DB.Create(&users)

for _, user := range users {
  user.ID // 1,2,3
}
Run Code Online (Sandbox Code Playgroud)
Obtaining db table not found error: mssql: Invalid object name 'dbo.at_' for below
Run Code Online (Sandbox Code Playgroud)
DB.Model(&User{}).Create(map[string]interface{}{
  "Name": "jinzhu", "Age": 18,
})

// batch insert from `[]map[string]interface{}{}`
DB.Model(&User{}).Create([]map[string]interface{}{
  {"Name": "jinzhu_1", "Age": 18},
  {"Name": "jinzhu_2", "Age": 20},
})
Run Code Online (Sandbox Code Playgroud)

小智 2

我遇到了同样的问题:

panic in handler: reflect: call of reflect.Value.Interface on zero Value
Run Code Online (Sandbox Code Playgroud)

我通过将 gorm 升级到 v2 解决了这个问题