未创建 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
}

我想知道这是不是唯一的方法