未创建GO GORM外键约束
我在为未创建GO GORM外键约束,go,gorm,go-gorm,Go,Gorm,Go Gorm,我在为所属关系创建外键约束时遇到问题 包含外键的结构: type Summary struct { Id string `gorm:"primaryKey"` OwnerId *string `gorm:"foreignKey:OwnerId references:Id;not null"` Title string } 摘要所属的结构: type Owner struct { Id
所属关系创建外键约束时遇到问题
包含外键的结构:
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中创建表没有问题,但是SQL模式在所有者id
列的摘要表中不包含外键约束,因此当所有者不存在时可以插入摘要。您使用的是什么版本的gorm?如果您在库的v1上,请尝试切换到v2。在使用该库的v1时,我遇到了类似的问题
v1依赖项下载
go-get-u github.com/jinchu/gorm
v2依赖项下载
go get-u gorm.io/gorm
您使用的是什么版本的gorm?如果您在库的v1上,请尝试切换到v2。在使用该库的v1时,我遇到了类似的问题
v1依赖项下载
go-get-u github.com/jinchu/gorm
v2依赖项下载
go get-u gorm.io/gorm
在我看来,最终有效但并非完美的解决方案是在摘要中引用所有者
结构,如下所示:
type Summary struct {
Id string `gorm:"primaryKey"`
OwnerId string
Owner Owner `gorm:"foreignKey:OwnerId"`
Title string
}
我想知道这是否是实现这一点的唯一方法在我看来,最终有效但并非完美的解决方案是引用所有者
内部的结构摘要
,如下所示:
type Summary struct {
Id string `gorm:"primaryKey"`
OwnerId string
Owner Owner `gorm:"foreignKey:OwnerId"`
Title string
}
我想知道这是否是唯一的办法@Akinwale v1.21。6@Akinwalev1.21.6I使用最新的gorm.io/gorm v1.21.7I使用最新的gorm.io/gorm v1.21.7是的,这就是你需要做的,根据文档是的,这就是你需要做的,根据文档