【发布时间】:2020-03-21 19:24:19
【问题描述】:
我正在创建一个gorm 模型
// Day is a corresponding day entry
type Day struct {
gorm.Model
Dateday string `json:"dateday" gorm:"type:date;NOT NULL"`
Nameday string `json:"nameday" gorm:"type:varchar(100);NOT NULL"`
Something sql.NullString `json:"salad"`
Holyday bool `json:"holyday"`
}
我将sql.NullString 用于Something 字段,因为它可能为NULL。
所以当我尝试执行一个典型的gorm 示例来验证我的设置是否有效时:
db.Create(&Day{
Nameday: "Monday",
Dateday: "23-10-2019",
Something: "a string goes here",
Holyday: false,
})
我明白了:
不能在字段值中使用“一个字符串”,(类型字符串)作为类型 sql.NullString
如果Something 字段可能为NULL,我应该使用什么类型?
【问题讨论】:
-
sql.NullString是struct类型,不能转换为string类型。您需要初始化sql.NullString的值并将其设置为该字段。一种方法是Something: sql.NullString{String: "a string goes here", Valid: true}。 golang.org/pkg/database/sql/#NullString -
感谢您抽出宝贵时间回复;我建议您将其发布为正常答案,以便我接受/支持它
-
如果我没记错的话,您可以使用
*string类型作为NULL-able 列