登录
首页 >  Golang >  Go问答

外键 gorm 的标签,引用主表

来源:stackoverflow

时间:2024-03-30 22:36:31 352浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《外键 gorm 的标签,引用主表》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

有主表: 用户

create table users(
        id bigserial primary key

有一个从属表:

create table users_history:
...
  foreign key(user_id) 
  references users(id)  on update cascade on delete cascade 

如何定义外键和引用的 gorm 标签,并限制更新删除?

我只理解(可能,有错误):

UserID    uint64    `gorm:"column:user_id; type: bigint; gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`

解决方案


docs on HasMany relationships and foreign key constraints应该可以帮助你。

  • 使用外键字段 UserID 创建一个 UserHistory 结构,不需要任何标签。
    • 由于您命名表的方式,您需要向此模型添加一个 TableName() string 函数,该函数返回 "users_history" (默认情况下,gorm 会使用 user_histories
  • 使用 ID 字段创建 User 结构体
    • 在此结构中添加一个 []UserHistory 字段,并将其命名为合理的名称,例如 History。这是约束标签所在的位置 gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"

就是这样。

今天关于《外键 gorm 的标签,引用主表》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>