sql >> Databasteknik >  >> RDS >> Mysql

Hur infogar man flera rader baserat på en fråga?

Det du letar efter är ar-extensions

Installera ädelstenen med

sudo gem install ar-extensions

Inkludera ädelstenen i din environment.rb (Eller direkt i modellen du vill göra inlägg med)

require 'ar-extensions'

Och infoga flera poster i en INSERT fråga med

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

User.import fields, data

Du kan också göra det med ActiveRecord-objekt.

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 nya rader har infogats i användartabellen, med bara en enda fråga!

Mer om det här , här och här .



  1. Kan inte ansluta till databasen (000webhost)

  2. Fördjupad undersökning av säkerhet på radnivå

  3. mysql efter insert trigger som uppdaterar en annan tabells kolumn

  4. 3 sätt att få de sorteringar som är tillgängliga i MariaDB