Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment insérer plusieurs lignes en fonction d'une requête ?

Ce que vous recherchez, ce sont des ar-extensions

Installez la gemme en utilisant

sudo gem install ar-extensions

Inclure la gemme dans votre environnement.rb (Ou directement dans le modèle avec lequel vous voulez faire des inserts)

require 'ar-extensions'

Et insérez plusieurs enregistrements dans un seul INSERT requête à l'aide de

fields = [:first_name, :last_name, :email]
data = [["glenn", "gillen", "[email protected]"],
       ["john", "jones", "[email protected]"],
       ["steve", "smith", "[email protected]"]]

User.import fields, data

Vous pouvez également le faire en utilisant des objets 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 nouvelles lignes ont été insérées dans la table des utilisateurs, avec une seule requête !

En savoir plus ici , ici et ici .