postgresql - 更新并返回GORM

标签 postgresql go go-gorm

我想在从记录返回字段时更新记录。如果我不返回同一命令,则可能存在并发问题,这就是为什么我希望它是原子操作。有人可以指导我如何在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/

相关文章:

go - 如果检查结构类型golang

json - Go中泛型的解决方案

postgresql - 我正在尝试通过电子邮件查找记录

sql - 带索引的高写入量 PostgreSQL 表的性能优化

java - Spring Boot 1.5.2.RELEASE 数据库支持的 session

Golang gRPC 服务器流

sql - 迁移后,gorm关系不会出现在数据库中

database - 授予对 future 在 PostgreSQL 中创建的模式的使用权和特权

postgresql - 查询用于创建分组、聚合和筛选行集的非重复计数

mysql - 如何使用 GORM 创建递归关联?