Rails + Postgres:如何选择更新或插入的记录数?

big*_*ato 2 postgresql ruby-on-rails

所以我有一个更新声明:

UPDATE billing_infos set card_number = ''
FROM orders
WHERE billing_infos.order_id = orders.id ...);`
Run Code Online (Sandbox Code Playgroud)

我如何找到此语句更新的记录数?

我正在我的控制台中执行此操作,ActiveRecord::Base.connection.execute()因此它只是返回一个<PG::Result:0x007f9c99ef0370>对象。

任何人都知道我如何使用 SQL 或 Rails 方法来做到这一点?

ush*_*sha 5

p = ActiveRecord::Base.connection.execute(<query>)
p.cmd_status
Run Code Online (Sandbox Code Playgroud)

这给出了命令状态。就像是

UPDATE 16
Run Code Online (Sandbox Code Playgroud)

有关 PG::Result 的更多方法,请参阅此处

  • 我刚刚注意到还有 cmd_tuples,它返回插入/更新的元组数(可能只是解析 cmd_status),所以不需要解析。 (2认同)