在 Rails 中使用预处理语句插入多行
Using prepared statement in Rails to insert multiple rows
我目前正在使用 PostgreSQL 进行 RoR。
ActiveRecord基本上满足了大部分的数据检索需求。但是,在某些情况下,似乎使用一条语句会更有效率。
所以,是否可以像下面这样用一个prepared statement做多个insert?或者我必须自己附加原始 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'), ...;
试试这个
user_string = " ('code1','title1', 'aaa', ...), ('code2','title2'...)"
User.connection.insert("INSERT INTO films (code, title, did, date_prod, kind)VALUES"+user_string)
经过两年的 RoR 工作经验,
有一个叫做 activerecord-import 的 gem 可以做这件事。这是示例代码。
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
我目前正在使用 PostgreSQL 进行 RoR。
ActiveRecord基本上满足了大部分的数据检索需求。但是,在某些情况下,似乎使用一条语句会更有效率。
所以,是否可以像下面这样用一个prepared statement做多个insert?或者我必须自己附加原始 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'), ...;
试试这个
user_string = " ('code1','title1', 'aaa', ...), ('code2','title2'...)"
User.connection.insert("INSERT INTO films (code, title, did, date_prod, kind)VALUES"+user_string)
经过两年的 RoR 工作经验,
有一个叫做 activerecord-import 的 gem 可以做这件事。这是示例代码。
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