pages/ru_RU/docs/constraints.md
GORM позволяет создавать ограничения базы данных с тегом, ограничения будут создаваться, при авто миграции (AutoMigrate) или создании таблицы (CreateTable) с GORM
Создадим 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 позволяет вам установить ограничения FOREIGN KEY для OnDelete, OnUpdate при помощи тега constraint, например:
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
}