我正在尝试在Password表上创建一个外键,该外键必须指向表id内的User列。但是当我尝试以下操作时,它不起作用。foreign key没有生成。user_id它只是在表中添加列名password。package schemaimport ("github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/mysql")type User struct { gorm.Model FirstName string `gorm:"not null"` LastName string `gorm:"not null"` Email string `gorm:"type:varchar(100);unique_index"` IsActive bool `gorm:"not null"` IsVerified bool `gorm:"not null"`}type Password struct { gorm.Model Password string `gorm:"not null"` UserId int `gorm:"not null"` User User `gorm:"foreignkey:UserId;association_foreignkey:id"`}func SyncDB(db *gorm.DB) { db.AutoMigrate(&User{}) db.AutoMigrate(&Password{})}我究竟做错了什么?我怎样才能在Password表内创建一个指向User表的外键?
2 回答
波斯汪
TA贡献1811条经验 获得超4个赞
我认为你需要:
db.Model(&Password{}).AddForeignKey("user_id", "users(id)", "RESTRICT", "RESTRICT")
我把我的放在我的自动迁移语句之后
db.AutoMigrate(&User{}, &Password{})
db.Model(&Password{}).AddForeignKey("user_id", "users(id)", "RESTRICT", "RESTRICT")
让我知道这是否有帮助。
慕容708150
TA贡献1831条经验 获得超4个赞
试试这个。
type Password struct {
gorm.Model
Password string `gorm:"not null"`
UserId int `gorm:"not null"`
User User `gorm:"foreignkey:UserId;references:id"`
}
- 2 回答
- 0 关注
- 250 浏览
添加回答
举报
0/150
提交
取消