根据GORM 的文档:
Updates 支持使用 struct 或 map[string]interface{} 进行更新,使用 struct 更新时默认只会更新非零字段
我的数据库中已经有一个Service带有 ID 的条目,abc123. 我正在尝试获取如下所示的对象:
Service{
ID: "abc123",
Name: "new service name",
CreatedAt: nil,
}
并用它来更新我现有的记录。但是当我打电话时:
tx.Model(&service).Updates(service)
数据库中的CreatedAt值被覆盖nil。如何在不覆盖值的情况下更新我的数据库记录CreatedAt?
更新:下面是我的Service结构
type Service struct {
ID string `gorm:"not null;type:char(32);primary_key;column:id"`
Name string `json:"name" gorm:"size:50;not null;"`
CreatedAt *time.Time
UpdatedAt time.Time
DeletedAt *time.Time `gorm:"index"`
}
我为我的Service结构尝试了两种不同的变体。另一个是CreatedAt类型time.Time而不是*time.Time. *time.Time它将用空值覆盖我的数据库中的值。time.Time它尝试用未初始化的时间值覆盖数据库中的值并引发错误:Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1
元芳怎么了
RISEBY
呼啦一阵风
相关分类