更新数据

  • 1) 更新单条记录中的单个字段
var user User
tx := db.Debug().Where(User{Name: "批量插入1"}).First(&user).Update("Name", "TestUpdate1")
fmt.Println(user)
fmt.Println(tx)
  • 2) 更新单条记录中的多个字段
var user User
db.Debug().Where(User{Name: "批量插入1"}).First(&user).Updates(User{Name: "Update-many-column", Age: 99})
fmt.Println(user)

提示

注意只有非空字段才会更新;下面这个例子是不会更新的,在系统设计的时候要尽量避免这些空值有特殊的含义,如果一定要更新,可以使用第一种方式,设置单个值。

db.Model(&user).Updates(User{Name: "", Age: 0, Actived: false})
  • 3) 批量更新多条记录
db.Debug().Where(User{Name: "批量插入1"}).Updates(User{Name: "TestUpdate-bat-many", Age: 99})