sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo insertar varias filas en función de una consulta?

Lo que estás buscando es ar-extensions

Instala la gema usando

sudo gem install ar-extensions

Incluya la gema en su entorno.rb (O directamente en el modelo con el que desea hacer inserciones)

require 'ar-extensions'

E inserte varios registros en uno 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

También puede hacerlo 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

Se han insertado 3 filas nuevas en la tabla de usuarios, ¡con solo la consulta única!

Más sobre esto aquí , aquí y aquí .