首页 文章

GORM Create和NewRecord有什么不同

提问于
浏览
0

根据文件和gorm repo的问题,
db.Create 是插入记录 .
db.NewRecord 仅检查当前值是否具有主键 . 所以不要插入记录 .

我在下面写了这段代码 .
但是我可以用 db.Createdb.NewRecord 插入记录 .

这两种方法有什么不同?

for _, v := range oneday.Onedays {
    if err := tx.Create(&v).Error; err != nil {
        tx.Rollback()
        return model.ResOnedays{}, err
    }

    // Photos
    for i, pv := range v.Photos {
        res := tx.NewRecord(&pv)
    }

    // Tags
    for _, tv := range v.Tags {
        tx.NewRecord(&tv)
    }
}

1 回答

  • 0

    正如您所指出的, Create 通过发出 INSERT 来创建新行 .

    NewRecord 根本不影响数据库,如果当前值's primary key is unset, meaning it'是新记录,它只返回 true . 这意味着在void上下文中调用 NewRecord ,就像你所做的那样,没有意义,因为你忽略了返回值 .

相关问题