【问题标题】:Affected rows for ActiveRecord::Base.connection.execute with Postgres使用 Postgres 的 ActiveRecord::Base.connection.execute 受影响的行
【发布时间】:2017-08-14 14:29:29
【问题描述】:

有没有办法使用ActiveRecord::Base.connection.execute 获取 SQL 操作产生的受影响行数?

我为 MySQL 适配器找到了 this answer,但它不适用于 Postgres。

或者,如果有办法获取 SQL 文本响应(例如“UPDATE 126”),那也可以。

【问题讨论】:

    标签: ruby-on-rails postgresql rails-activerecord


    【解决方案1】:

    你可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      相关资源
      最近更新 更多