Postgresql 我是否需要使用gorm(golang)在数据库中读取和写入两个不同的对象?
gorm在文档中告诉“基本模型定义gorm.model,包括字段ID、CreatedAt、UpdatedAt、DeletedAt,您可以将其嵌入到您的模型中,或者只编写您想要的字段”: 根据文档,我希望只有一个用户定义,因此我创建了一个如下的对象:Postgresql 我是否需要使用gorm(golang)在数据库中读取和写入两个不同的对象?,postgresql,go,go-gorm,Postgresql,Go,Go Gorm,gorm在文档中告诉“基本模型定义gorm.model,包括字段ID、CreatedAt、UpdatedAt、DeletedAt,您可以将其嵌入到您的模型中,或者只编写您想要的字段”: 根据文档,我希望只有一个用户定义,因此我创建了一个如下的对象: type User struct { gorm.Model ID uint CreatedAt time.Time Name string } 但是如果我执行DB.CreateTable(&User{}),我
type User struct {
gorm.Model
ID uint
CreatedAt time.Time
Name string
}
但是如果我执行DB.CreateTable(&User{})
,我会从postgres中得到以下错误:
(pq: column "id" specified more than once)
(pq: column "created_at" specified more than once)
所以我必须有两个不同的对象:
type CreateUser struct {
gorm.Model
Name string
}
type RetrieveUser struct {
gorm.Model
ID uint
CreatedAt time.Time
Name string
}
所以我可以做一个DB.CreateTable(&CreateUser{})
它很难看,我一定错过了什么,知道吗?好的,读一下gorm.Model后面的代码,我得到了答案
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}
这意味着我刚刚学会了遗传在围棋中的作用 围棋没有继承权。您将要查看感谢您提供的这一重要精度!
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}