首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中使用-> (10)作为int(10)?

如何在mysql中使用-> (10)作为int(10)?
EN

Stack Overflow用户
提问于 2017-01-17 19:45:07
回答 1查看 2.1K关注 0票数 2
代码语言:javascript
复制
type Contact struct {
  gorm.Model
  PersonID sql.NullInt64
}

type Person struct {
  gorm.Model
}

我试图在以前的代码中使用戈姆和mysql,但是我有以下问题:

我要:

  • 使用sql.NullInt64可以轻松地处理空值。
  • 使用基本模型定义gorm.Model,包括字段IDCreatedAtUpdatedAtDeletedAt
  • 添加约束Db.Model(&models.Contact{}).AddForeignKey

我的问题是:

  • Person.ID成为mysql中的"int(10)"
  • Contact.PersonID变成"bigint(20)"
  • MySql需要pk和fk的相同类型。

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-20 22:21:44

gorm.Model上的“魔力”仅仅是字段的名称,根据gorm文档,在约定的末尾,任何带有这些字段的struct都是这样的

例如:保存具有UpdatedAt字段的记录将其设置为当前时间。

删除具有DeletedAt字段的记录,它不会从数据库中删除,而是只将字段DeletedAt的值设置为当前时间,并且在查询时无法找到该记录,请参考软删除

所以解决这个问题很容易,这是我的案例代码:

代码语言:javascript
复制
package models

import "time"

type Model struct {
    ID        uint `gorm:"primary_key;type:bigint(20) not null auto_increment"`
    CreatedAt time.Time
    UpdatedAt time.Time
    DeletedAt *time.Time `sql:"index"`
}

所以,现在我只需要使用它作为基本模型:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41705659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档