问题描述
做毕设ing,基本的增删改查。
这里是一个需要增的地方,代码如下:
func (BI *BlogImpl) CreateBlog(ctx context.Context, blogInformation repo.BlogInformation) (repo.BlogInformation, error) {
err := BI.Db.Table(BlogTable).Create(&blogInformation).Error
fmt.Println(blogInformation.Bid, "createBlog")
if err != nil {
return repo.BlogInformation{}, err
}
return blogInformation, nil
}
我在外层调用时候,是需要返回新增记录的ID。但是无法符合预期。通过打印发现,我这里返回的id就是0。
问题解决
翻阅之前写的一个正确样例,对比发现
type BlogInformation struct {
Bid int `gorm:"column:bid"`
}
区别在于,我这里没有去指定主键。
根据官方文档,其demo中提到:
创建记录
user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}
result := db.Create(&user) // 通过数据的指针来创建
user.ID // 返回插入数据的主键
result.Error // 返回 error
result.RowsAffected // 返回插入记录的条数
这个修改需要主键,所以应该在gorm指定一下。文章来源:https://www.toymoban.com/news/detail-805815.html
参考资料
https://gorm.io/zh_CN/docs/create.html
官网文档这里文章来源地址https://www.toymoban.com/news/detail-805815.html
到了这里,关于Golang+Gorm库使用踩坑——未标识primarykey导致创建后无法返回修改的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!