约束

GORM 允许使用标签创建数据库约束,约束将在 使用 GORM 进行自动迁移或创建表 时创建

CHECK 约束

使用标签 check 创建 CHECK 约束

type UserIndex struct {
Name string `gorm:"check:name_checker,name <> 'jinzhu'"`
Name2 string `gorm:"check:name <> 'jinzhu'"`
Name3 string `gorm:"check:,name <> 'jinzhu'"`
}

索引约束

查看 数据库索引

外键约束

GORM 将为关联创建外键约束,您可以在初始化期间禁用此功能

db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{
DisableForeignKeyConstraintWhenMigrating: true,
})

GORM 允许您使用标签 constraint 设置外键约束的 OnDeleteOnUpdate 选项,例如

type User struct {
gorm.Model
CompanyID int
Company Company `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
CreditCard CreditCard `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
}

type CreditCard struct {
gorm.Model
Number string
UserID uint
}

type Company struct {
ID int
Name string
}

铂金赞助商

黄金赞助商

铂金赞助商

黄金赞助商