如何使用GORM创建或更新记录? [英] How to Create or Update a record with GORM?

查看:3575
本文介绍了如何使用GORM创建或更新记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Gorm有一个FirstOrCreate方法和一个FirstOrInit,但是之后如何检查记录是否真正创建了呢?我想创建一条不存在的记录,如果存在,我想更新一些字段.

Gorm has a FirstOrCreate method and a FirstOrInit but how to check afterwards if the record was actually created? I like to create a record if it does not exists and if it exists I want to update some fields.

推荐答案

FirstOrInitFirstOrCreate是不同的.如果数据库中没有匹配的记录,则FirstOrInit将初始化struct但不创建记录,FirstOrCreate将创建一个记录并查询该记录以获取struct.

FirstOrInit and FirstOrCreate are different. If there is no match record in database, FirstOrInit will init struct but not create record, FirstOrCreate will create a record and query that record to struct.

所以让我们回到您的问题上.如何更新或创建?

So let's back to you question. How to update or create?

答案

var user User
if err := db.Where("name = ?", "xxxx").First(&user).Error; err != nil {
    // error handling...
    if gorm.IsRecordNotFoundError(err){
        db.Create(&newUser)  // newUser not user
    }
}else{
    db.Model(&user).Where("id = ?", 3333).Update("name", "nick")
}

这篇关于如何使用GORM创建或更新记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆