高级主题
约束
登录后可跨设备保存划线和私人笔记登录
GORM 允许通过 tag 创建数据库约束,约束会在 AutoMigrate 或使用 GORM 的 CreateTable 时被创建。
CHECK 约束
使用 check tag 创建 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 tag 设置 FOREIGN KEY 约束的 OnDelete、OnUpdate 选项,例如:
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
}评论
登录后参与评论
正在加载评论…
KnowForge