【发布时间】:2020-08-17 11:52:51
【问题描述】:
我正在使用 gorm,并且我有一个可以为空的列 gender,可以设置为 male 或 female,但我无法在列后使用 nil 将其设置回 NULL设置为 male 或 female
以下是我的代码。为了简化一点,我只包括与我的问题相关的字段
type User struct {
gorm.Model
Username string `gorm:"type:varchar(40);unique" json:"username"`
NickName string `gorm:"type:varchar(32)" json:"nickname"`
Gender *string `gorm:"type:enum('male', 'female');default:null" json:"gender"`
}
然后我将我的性别更新为男性:
db.Model(&User{}).Where(&User{
Model: gorm.Model{ID: 1},
}).Update(
&User{
Gender: utils.GetStringPtr("female"),
NickName: "nick name",
},
)
然后我尝试将性别更新为 NULL
db.Model(&User{}).Where(&User{
Model: gorm.Model{ID: 1},
}).Update(
&User{
Gender: nil,
NickName: "nick name",
},
)
但是,性别保持不变female,并且不改为NULL。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
您想阻止设置
null吗?或者你不能设置null? -
@ttrasn,我无法将其设置为 null,我想知道如何将其设置回 NULL