来自ActiveRecord :: Base.connection.execute(sql)的结果 - PostgreSQL

mev*_*ven 7 ruby sql postgresql activerecord

在使用ActiveRecord :: Base Connection类执行SQL语句后,如何找到PostgreSQL处理的记录数?

temp_sql = "UPDATE table_a SET column_a ='abc' WHERE column_b = 1"
result = ActiveRecord::Base.establish_connection(@db).connection.execute(temp_sql)
Run Code Online (Sandbox Code Playgroud)

或者你能建议更好的方法来做到这一点.请记住,上面的更新声明是一个简单的问题简要说明.我的实际查询是"基于集合",涉及复杂的创建临时表,更新,插入语句.

mev*_*ven 4

在 PG::Result 类中找到了答案。是cmd_tuples 方法;

temp_sql = "UPDATE table_a SET column_a ='abc' WHERE column_b = 1"
result = ActiveRecord::Base.establish_connection(@db).connection.execute(temp_sql)
number_of_records = result.cmd_tuples
Run Code Online (Sandbox Code Playgroud)