例如:
用户表的用户名字段为可 Null 字段,但是如果在 golang struct 中定义为 string,则在保存时,不指定值,会默认存入空字符串。
正常情况下并没有什么影响,但是如果恰好这个字段上建了唯一索引。那么非 Null 值都必须保证唯一性。就会造成运行时异常了。
此时,需要将该字段定义为 sql.NullString
import (
"database/sql"
)
type User struct {
gorm.Model
Name sql.NullString
}
// 新建一个用户
models.DB.Where(models.User{Name: sql.NullString{String: “zhongwei”, Valid: true}}).FirstOrCreate(&user)
// 获取 Name 值
user.Name.String
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式