gorm当需要update数据为0时,会不生效,包含数字的0,bool的false,还有nil,gorm默认不会生效。
解决办法是将需要清零的字段,定义为指针
type MonitorConfig struct {
gorm.Model
Name string `gorm:"column:name;primary_key;unique"`
MonitorStatus string `gorm:"column:monitorstatus;force"`
SeviceStatus string `gorm:"column:sevicestatus;force"`
LostAccount *int16 `gorm:"column:lostaccount"`
StartTime time.Time `gorm:"column:starttime"`
LastLost time.Time `gorm:"column:lastlost"`
}
需要清零
zeroV := int16(0)
plan := models.MonitorConfig{}
plan.LostAccount = &zeroV
需要增加数值
tmp := *record.LostAccount + int16(1)
record.LostAccount = &tmp
不知道有没有更方便点的方法。
网友评论