【问题标题】:Update, select atomic. GORM ORM更新,选择原子。戈尔姆
【发布时间】:2019-05-26 08:31:17
【问题描述】:

我可以在 gorm , psql 中做这样的事情吗?

UPDATE job SET status = 'RUNNING' WHERE status = 
'PENDING' RETURNING *

我想通过单个原子操作获取更新更改的所有行。如果有其他解决方案请写出来。

【问题讨论】:

  • 不确定这是否可能,我不会让事情变得那么复杂。您有 RowsAffected 但这仅返回已更新的行数。你也可以使用Transactions

标签: go go-gorm


【解决方案1】:

据我所知,可能只有一点缺点

假设您的模型名为Job,您可以执行以下操作...

var jobs []Job
db.Find(&jobs).Where("status = ?", StatusPending).Update("status", StatusRunning)

影响的行将在jobs var 中,但我不得不说您将收到更新前的行,因此模型的状态将是“待定”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多