我目前正在使用PostgreSQL开发RoR。
基本上,ActiveRecord满足数据检索的大部分要求。但是,在某些情况下,似乎使用一个语句会更有效率。
因此,是否可以使用一个预准备语句进行多次插入,如下所示?或者我必须自己附加原始sql语句?
INSERT INTO films (code, title, did, date_prod, kind) VALUES
('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'),
('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy'), ...;
答案 0 :(得分:2)
试试这个
user_string = " ('code1','title1', 'aaa', ...), ('code2','title2'...)"
User.connection.insert("INSERT INTO films (code, title, did, date_prod, kind)VALUES"+user_string)
答案 1 :(得分:0)
在RoR工作两年后,
有一个名为activerecord-import的宝石可以做到这一点。这是示例代码。
books = Array.new
books << Book.new(title: "Programming Ruby", author: "Dave Thomas")
books << Book.new(title: "Agile Web Development with Rails 5", author: "Sam Ruby")
Book.import books