Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 我是否需要使用gorm(golang)在数据库中读取和写入两个不同的对象?_Postgresql_Go_Go Gorm - Fatal编程技术网

Postgresql 我是否需要使用gorm(golang)在数据库中读取和写入两个不同的对象?

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{}),我

gorm在文档中告诉“基本模型定义gorm.model,包括字段ID、CreatedAt、UpdatedAt、DeletedAt,您可以将其嵌入到您的模型中,或者只编写您想要的字段”:

根据文档,我希望只有一个用户定义,因此我创建了一个如下的对象:

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"`
}