【发布时间】:2017-08-14 14:29:29
【问题描述】:
有没有办法使用ActiveRecord::Base.connection.execute 获取 SQL 操作产生的受影响行数?
我为 MySQL 适配器找到了 this answer,但它不适用于 Postgres。
或者,如果有办法获取 SQL 文本响应(例如“UPDATE 126”),那也可以。
【问题讨论】:
标签: ruby-on-rails postgresql rails-activerecord
有没有办法使用ActiveRecord::Base.connection.execute 获取 SQL 操作产生的受影响行数?
我为 MySQL 适配器找到了 this answer,但它不适用于 Postgres。
或者,如果有办法获取 SQL 文本响应(例如“UPDATE 126”),那也可以。
【问题讨论】:
标签: ruby-on-rails postgresql rails-activerecord
你可以使用cmd_tuples方法:
sql = "UPDATE users SET updated_at = '#{DateTime.now}' WHERE id = 1"
ActiveRecord::Base.connection.execute(sql).cmd_tuples
# => 1
文档:http://www.rubydoc.info/gems/pg/0.17.1/PG%2FResult:cmd_tuples
【讨论】: