Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como inserir várias linhas com base em uma consulta?

O que você está procurando é ar-extensions


Instale a gema usando
sudo gem install ar-extensions

Inclua a gem em seu environment.rb (Ou diretamente no modelo com o qual você deseja fazer inserções)
require 'ar-extensions'

E insira vários registros em um INSERT consulta usando
fields = [:first_name, :last_name, :email]
data = [["glenn", "gillen", "[email protected]"],
       ["john", "jones", "[email protected]"],
       ["steve", "smith", "[email protected]"]]

User.import fields, data

Você também pode fazer isso usando objetos ActiveRecord.
data = [ 
         User.new(:first_name => 'glenn', :last_name => 'gillen', :email => '[email protected]'),
         User.new(:first_name => 'john', :last_name => 'jones', :email => '[email protected]'),
         User.new(:first_name => 'steve', :last_name => 'smith', :email => '[email protected]')
       ]

User.import fields, data

3 novas linhas foram inseridas na tabela users, com apenas a consulta única!

Mais sobre isso aqui , aqui e aqui .