Postgresql 使用go';s sqlx在postgres表中插入记录并自动生成ID

Postgresql 使用go';s sqlx在postgres表中插入记录并自动生成ID,postgresql,go,sqlx,Postgresql,Go,Sqlx,我正在使用创建一个goapi 我想在名为day的表中插入一条记录 相应的go结构如下 type Day结构{ ID字符串`db:“ID”json:“ID”` Dateday字符串`db:“Dateday”json:“Dateday”` Nameday字符串`db:“Nameday”json:“Nameday”` Holyday bool`db:“Holyday”json:“Holyday”` } 在用于创建日的端点中,将通过post请求接收除ID之外的所有字段 我应该使用什么方法与数据库交互,

我正在使用创建一个
go
api

我想在名为
day
的表中插入一条记录

相应的
go
结构如下

type Day结构{
ID字符串`db:“ID”json:“ID”`
Dateday字符串`db:“Dateday”json:“Dateday”`
Nameday字符串`db:“Nameday”json:“Nameday”`
Holyday bool`db:“Holyday”json:“Holyday”`
}
在用于创建日的端点中,将通过post请求接收除
ID
之外的所有字段

我应该使用什么方法与数据库交互,以便:

a) 创建记录

b) 无需亲自传递
ID
并指示
postgres
自动生成字段

表创建语句如下所示:

如果“天”不存在,则创建表(
“id”串行主键,
“dateday”日期不为空,
“nameday”varchar(10)不为空,
“holyday”布尔值不为空
);

我建议覆盖
MarshalJSON
方法,如下所述:

func (r Day) MarshalJSON() ([]byte, error) {
    root := make(map[string]interface{})

    root["dateday"] = r.Dateday
    root["nameday"] = r.Nameday
    root["holyday"] = r.Holyday
    return json.Marshal(root)
}
参考: