我想在从记录返回字段时更新记录。如果我不返回同一命令,则可能存在并发问题,这就是为什么我希望它是原子操作。有人可以指导我如何在Gorm中实现这一目标吗?
最佳答案
您可以使用func (*DB) BeginTx
来启动事务,完成计算或更新后,可以使用func (s *DB) Commit() *DB
来更新事务。它将锁定表以确保原子操作(如果发生错误,请使用回滚)。
有关此功能的更多信息,请使用以下链接:
https://godoc.org/github.com/jinzhu/gorm#DB.BeginTx
例如(示例Golang代码):
db, err := mysql.SharedStore().BeginTx()
if err != nil {
return nil, err
}
defer func() { _ = db.Rollback() }()
//calculations
db.CommitTx()
关于postgresql - 更新并返回GORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60647859/