我在Go应用程序中使用PostgreSQL和GORM。
我认为使用sql:"not null"
的sql选项卡可以防止空条目,但是当使用字符串类型初始化结构时,它默认为一个空字符串,它与null不同数据库。
我想知道是否有办法防止在结构定义中发生这种情况,因此我不必在应用程序代码的所有级别严格执行它。
答案 0 :(得分:1)
您可以解决这样的问题,即通过using default: null
和not null
约束一起防止''(空)字符串插入数据库。因此,如果Struct字段值为空,它将被视为默认值null
,并且gorm会出错。
gorm:"unique;not null;type:varchar(100);default:null"
示例是:
type User struct {
gorm.Model
Email string `gorm:"unique;not null;type:varchar(100);default:null"`
}
空User.Email
的SO gorm将出错。