猿问

未创建 GO GORM 外键约束

我在为关系创建外键约束时遇到问题。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 中创建表,但 SQL 架构在列上的摘要表中不包含外键约束,因此当所有者不存在时,可以插入摘要。owner_id


手掌心
浏览 102回答 2
2回答

POPMUISE

你用的是什么版本的 gorm?如果您位于库的 v1 上,请尝试切换到 v2。我在使用库的 v1 时遇到了类似的问题。v1 依赖项下载go get -u github.com/jinzhu/gormv2 依赖项下载go get -u gorm.io/gorm

幕布斯6054654

在我看来,最终奏效但不是完美的解决方案是引用内部的结构,如下所示:OwnerSummarytype Summary struct {    Id          string  `gorm:"primaryKey"`    OwnerId     string     Owner       Owner   `gorm:"foreignKey:OwnerId"`    Title       string}我想知道这是否是唯一的方法
随时随地看视频慕课网APP

相关分类

Go
我要回答