INSERT..VALUES 構文を使用して複数の行を挿入する Ruby 固有のソリューションを探しています。
現在、個々の挿入ステートメントを生成していますが、これはデータベースの観点から非常に非効率的です。関連する質問がいくつか見つかりましたが、正確には探しているものではありません。
INSERT ステートメントの例 (現在):
INSERT INTO qux SELECT 1,3,'foo';
INSERT INTO qux SELECT 4,11,'bar';
INSERT INTO qux SELECT 12,19,'baz';
Ruby on Railsアクティブレコードを使用して複数のレコードを挿入する
上記の質問では、ActiveRecord を使用して目的を達成していますが、純粋な Ruby のアプローチを探しています。
上記の質問では、トランザクションを使用して、私のニーズと同様の結果を達成しています。ただし、これは INSERT VALUES ステートメントを 1 つ使用する場合ほど効率的ではありません。
サンプルデータ:
start,end,name
1,3,foo
4,11,bar
12,19,baz
INSERT VALUES ステートメント (望ましい):
INSERT INTO qux VALUES (1,3,'foo'),(4,11,'bar'),(12,19,'baz');
この機能を備えた既存の宝石/コードベースはありますか?
更新: この特定のプロジェクトでは ActiveRecord を使用しておらず、使用する予定もありません。私は MySQL データベースと直接やり取りしており、問題の解決策を知りたいと思っています。1 つの選択肢として、自分で機能を構築することがあります。ただし、ここで車輪を再発明したくありません。