Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie fügt man mehrere Zeilen basierend auf einer Abfrage ein?

Was Sie suchen, sind ar-extensions

Installieren Sie das Gem mit

sudo gem install ar-extensions

Fügen Sie das Juwel in Ihre Umgebung ein.rb (Oder direkt in das Modell, mit dem Sie Einfügungen machen möchten)

require 'ar-extensions'

Und fügen Sie mehrere Datensätze in einem INSERT ein Abfrage mit

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

User.import fields, data

Sie können dies auch mit ActiveRecord-Objekten tun.

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 neue Zeilen wurden in die Benutzertabelle eingefügt, mit nur der einzelnen Abfrage!

Mehr dazu hier , hier und hier .