未创建 GO GORM 外键约束
GO GORM foreign key constraint is not created
我在为 Belongs to
关系创建外键约束时遇到问题。
包含外键的结构:
type Summary struct {
Id string `gorm:"primaryKey"`
OwnerId *string `gorm:"foreignKey:OwnerId references:Id;not null"`
Title string
}
摘要所属的结构:
type Owner struct {
Id string `gorm:"primaryKey"`
Name string
}
它在 SQL 中创建 table 没有问题,但是 SQL 架构在 [=13 上的摘要 table 中不包含外键约束=] 列,因此当所有者不存在时可以插入摘要。
您使用的是哪个版本的 gorm?如果您使用的是库的 v1,请尝试切换到 v2。我在使用库的 v1 时遇到了类似的问题。
v1依赖下载
go get -u github.com/jinzhu/gorm
v2依赖下载
go get -u gorm.io/gorm
我认为最终有效但不是完美的解决方案是在 Summary
中引用 Owner
结构,如下所示:
type Summary struct {
Id string `gorm:"primaryKey"`
OwnerId string
Owner Owner `gorm:"foreignKey:OwnerId"`
Title string
}
我想知道这是不是唯一的方法
我在为 Belongs to
关系创建外键约束时遇到问题。
包含外键的结构:
type Summary struct {
Id string `gorm:"primaryKey"`
OwnerId *string `gorm:"foreignKey:OwnerId references:Id;not null"`
Title string
}
摘要所属的结构:
type Owner struct {
Id string `gorm:"primaryKey"`
Name string
}
它在 SQL 中创建 table 没有问题,但是 SQL 架构在 [=13 上的摘要 table 中不包含外键约束=] 列,因此当所有者不存在时可以插入摘要。
您使用的是哪个版本的 gorm?如果您使用的是库的 v1,请尝试切换到 v2。我在使用库的 v1 时遇到了类似的问题。
v1依赖下载
go get -u github.com/jinzhu/gorm
v2依赖下载
go get -u gorm.io/gorm
我认为最终有效但不是完美的解决方案是在 Summary
中引用 Owner
结构,如下所示:
type Summary struct {
Id string `gorm:"primaryKey"`
OwnerId string
Owner Owner `gorm:"foreignKey:OwnerId"`
Title string
}
我想知道这是不是唯一的方法