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)
}
参考: