LoginSignup
7
6

More than 5 years have passed since last update.

Railsで複数行一気にInsert

Posted at

メモとして残しておきます

普通に複数行Insertするとき


INSERT TO テーブル (id, name) VALUES (1, hoge1)
INSERT TO テーブル (id, name) VALUES (2, hoge2)
INSERT TO テーブル (id, name) VALUES (3, hoge3)

複数行挿入を一気に投げたいときに上のようにSQLを投げるとパフォーマンスが悪いのはわかると思います。

ActiveRecodeで書いた時おそらくこんな感じになると思います
(ざっくり頭の中で考えたことなので間違ってるかもしれません、、、)


(配列???).each do |data|
   Model.create(data)
end

でもこれを下記のようにSQLを投げる方法について書いていきます。


INSERT TO テーブル名 (id, name) VALUES (1, hoge1),(2, hoge2),(2, hoge2)

gem を入れる

下記のgemをGemfileに書いて bundle install します

gem 'activerecord-import'

書き方

     imageArray = []
     params = なんかの配列

     params.each do |data|
       array << モデル.new(なんかのモデル)
     end

    モデル.import(array)

これで複数行のInsertを一回のSQLで実行することができます。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6