如何使用GORM创建或更新记录? [英] How to Create or Update a record with GORM?
本文介绍了如何使用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.
推荐答案
FirstOrInit
和FirstOrCreate
是不同的.如果数据库中没有匹配的记录,则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屋!
查看全文