我在為關(guān)系創(chuàng)建外鍵約束時(shí)遇到問(wèn)題。Belongs to包含外鍵的結(jié)構(gòu):type Summary struct { Id string `gorm:"primaryKey"` OwnerId *string `gorm:"foreignKey:OwnerId references:Id;not null"` Title string}摘要所屬的結(jié)構(gòu):type Owner struct { Id string `gorm:"primaryKey"` Name string}它可以毫無(wú)問(wèn)題地在 SQL 中創(chuàng)建表,但 SQL 架構(gòu)在列上的摘要表中不包含外鍵約束,因此當(dāng)所有者不存在時(shí),可以插入摘要。owner_id
2 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
你用的是什么版本的 gorm?如果您位于庫(kù)的 v1 上,請(qǐng)嘗試切換到 v2。我在使用庫(kù)的 v1 時(shí)遇到了類似的問(wèn)題。
v1 依賴項(xiàng)下載
go get -u github.com/jinzhu/gorm
v2 依賴項(xiàng)下載
go get -u gorm.io/gorm

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
在我看來(lái),最終奏效但不是完美的解決方案是引用內(nèi)部的結(jié)構(gòu),如下所示:OwnerSummary
type Summary struct {
Id string `gorm:"primaryKey"`
OwnerId string
Owner Owner `gorm:"foreignKey:OwnerId"`
Title string
}
我想知道這是否是唯一的方法
- 2 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)
0/150
提交
取消