mysql - 父表 GORM 2.0 中的外键 AUTO INCREMENTS 时无法创建 HAS MANY 关系
问题描述
探索自动在数据库中创建约束的 GORM 2.0 的 AutoMigrate,当我使用在其父表中自动递增的外键用于 HAS MANY 关系时,它会引发此错误:
错误 1075:表定义不正确;只能有一个自动列,并且必须将其定义为键
这是代码:
type Person struct {
ID uint `gorm:"primaryKey;type:INT UNSIGNED AUTO_INCREMENT;"`
Clothes *[]Cloth `gorm:"foreignKey:OwnerID;"`
}
type Cloth struct {
ClothID uint `gorm:"primaryKey;type:INT UNSIGNED AUTO_INCREMENT;"`
OwnerID uint `gorm:"index;type:INT UNSIGNED;autoIncrement:false;"` //foreign key
Color string
}
在主函数中:
db.AutoMigrate(&Person{})
db.AutoMigrate(&Cloth{})
OwnerID 列(外键)不应该增加,但 GORM 不会让我这样创建它。
我正在使用 MySQL 数据库。不知道是不是bug,请帮忙:)
解决方案
推荐阅读
- python - 错误“发生异常,使用 %tb 查看完整回溯”
- postgresql - 按键访问jsonb value[]
- python - Flask 应用程序替代文件结构(app.py,模板文件夹)
- excel - 我正在尝试使用 excel vba 将剪切和粘贴更改为复制和粘贴和删除
- python - 使用 pymongo 进行 mongo 身份验证
- c++ - 内联析构函数“导致”bad_alloc
- python - 检查提到的用户是否有一定的权限 discord.py
- webpack - 使用 webpack 提供静态资源
- java - 将字符串数组反序列化为csv
- flutter - Flutter - 无需点击即可在屏幕加载中检索 MobX @action 返回值