首页 > 后端开发 > Golang > 正文

GO - Gin/Gorm/Postgresql - 创建具有'有一个”关联的外键

王林
发布: 2024-02-09 20:18:09
转载
1026 人浏览过

GO - Gin/Gorm/Postgresql - 创建具有“有一个”关联的外键

php小编草莓为您介绍GO语言中使用Gin、Gorm和PostgreSQL创建具有"有一个"关联的外键的方法。在开发过程中,我们经常会遇到需要建立表之间关联关系的情况。有时候,我们需要建立一个表与另一个表的"有一个"关联,即一个表的记录对应另一个表的一条记录。这种关联关系可以通过外键来实现,在GO语言中,我们可以使用Gin框架进行路由处理,Gorm作为ORM工具与数据库进行交互,而PostgreSQL则是一种强大的关系型数据库。下面将为您详细介绍如何使用这些工具来创建具有"有一个"关联的外键。

问题内容

我已阅读文档(https://gorm.io/docs/has_one.html)并按照建议进行测试,但无法创建关联。 我的桌子看起来像这样(名称是意大利语)

models/tables.go

type teatroy struct {
    gorm.model
    nome  string
    posti int
}

type spettacoloxy struct {
    gorm.model
    nome   string
    teatro teatroy `gorm:"foreignkey:id"`
}
登录后复制

我主要使用经典的自动迁移

initializers.db.automigrate(&models.teatroy{}, &models.spettacoloxy{})
登录后复制

我得到的错误如下

"2023/04/02 16:12:24 E:/Work/Mota/cdbp4/server.go:13 ERROR: relation
"spettacolo_xies" does not exist (SQLSTATE 42P01) [33.459ms] [rows:0]
ALTER TABLE "teatro_ies" ADD CONSTRAINT "fk_spettacolo_xies_teatro"
FOREIGN KEY ("id") REFERENCES "spettacolo_xies"("id")"
登录后复制

创建“teatroy”后,当我创建“spettacoloxy”时,“teatro”字段必须与一个且仅有一个“teatroy”关联

提前感谢您的帮助

解决方法

将模型迁移代码更改为:

initializers.DB.AutoMigrate(&models.SpettacoloXY{}, &models.TeatroY{})
登录后复制

将消除错误并在数据库中创建两个表。

以上是GO - Gin/Gorm/Postgresql - 创建具有'有一个”关联的外键的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!