Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql ActiveRecord::Base.connection.execute的受影响行_Mysql_Ruby On Rails 4_Activerecord_Connection - Fatal编程技术网

Mysql ActiveRecord::Base.connection.execute的受影响行

Mysql ActiveRecord::Base.connection.execute的受影响行,mysql,ruby-on-rails-4,activerecord,connection,Mysql,Ruby On Rails 4,Activerecord,Connection,对于Rails 4.1.1,使用mysql2适配器: 我正在使用ActiveRecord在MySQL表中执行多重插入: ActiveRecord::Base.connection.execute %Q{ INSERT INTO table (`user_id`, `item_id`) SELECT 1, id FROM items WHERE items.condition IS NOT NULL } 这工作正常,完成任务,并返回nil 是否有方法获取受影响的行数? (避免执

对于Rails 4.1.1,使用mysql2适配器:

我正在使用ActiveRecord在MySQL表中执行多重插入:

ActiveRecord::Base.connection.execute %Q{
    INSERT INTO table (`user_id`, `item_id`) 
    SELECT 1, id FROM items WHERE items.condition IS NOT NULL
}
这工作正常,完成任务,并返回
nil

是否有方法获取受影响的行数? (避免执行另一个查询)


我发现该方法的文档有点稀疏。

下面是一个使用mysql2适配器获取受影响行数的简单方法。将其放入应用程序加载的文件中:

class ActiveRecord::ConnectionAdapters::Mysql2Adapter
def受影响的_行
@连接.u行
结束
结束

然后,您将能够运行
ActiveRecord::Base.connection.infected_rows
以获取受影响的行数。

您可以使用
connection.update
方法,该方法执行表达式并返回受影响的行数

ActiveRecord::Base.connection
.update(“插入帐户(`name`)值('first')、('second'))
=> 2
Rails v4.2.7文档-


Rails最新文档-

非常有效。谢谢多线程和连接池呢?可以确定受影响的行是从同一个连接返回的吗?@akostadinov Current thread是连接的唯一持有者,直到您将其签回池中为止。这就是连接池的全部要点。最好在这里回答: