Ruby on Rails 在单个查询中更新多条记录
Ruby on Rails update multiple records in a single query
你好,我有一个 rails 应用程序,我想在其中在单个查询中创建多条记录
这是我的代码
inserts = []
1000.times do
inserts.push "user name"
end
inserts = inserts.map {|bar| "(#{bar.to_s})"}.join(",")
ActiveRecord::Base.connection.execute "INSERT INTO `user_dat`.`user_inserts` (`name`) VALUES #{inserts}"
我遇到的错误是 mysql 语法
中的错误
INSERT INTO `batch_insert`.`batch_inserts` (`name`) VALUES (user name),(user name),(user name),(user name),(user name),(user name),(user name).... upto 1000
我知道我想要它像 ("user name"), ("user name")
但是我无法实现它有人可以告诉我如何实现这种格式的值
如果问题只是在用户名周围加上引号,答案是替换字符串 inserts = inserts.map {|bar| "(#{bar.to_s})"}.join(",")
与
inserts = inserts.map {|bar| %Q[("#{bar.to_s}")]}.join(",")
你有那个 table 的模型吗?然后你可以只使用普通的 ActiveRecord:
data = 1.upto(10000).map { |i| { name: "User #{i}" } }
User.create data
你好,我有一个 rails 应用程序,我想在其中在单个查询中创建多条记录
这是我的代码
inserts = []
1000.times do
inserts.push "user name"
end
inserts = inserts.map {|bar| "(#{bar.to_s})"}.join(",")
ActiveRecord::Base.connection.execute "INSERT INTO `user_dat`.`user_inserts` (`name`) VALUES #{inserts}"
我遇到的错误是 mysql 语法
中的错误INSERT INTO `batch_insert`.`batch_inserts` (`name`) VALUES (user name),(user name),(user name),(user name),(user name),(user name),(user name).... upto 1000
我知道我想要它像 ("user name"), ("user name") 但是我无法实现它有人可以告诉我如何实现这种格式的值
如果问题只是在用户名周围加上引号,答案是替换字符串 inserts = inserts.map {|bar| "(#{bar.to_s})"}.join(",")
与
inserts = inserts.map {|bar| %Q[("#{bar.to_s}")]}.join(",")
你有那个 table 的模型吗?然后你可以只使用普通的 ActiveRecord:
data = 1.upto(10000).map { |i| { name: "User #{i}" } }
User.create data