mysql - Ruby on Rails 在单个查询中更新多个记录

标签 mysql sql ruby-on-rails ruby-on-rails-4.2 batch-insert

嗨,我有一个 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

我知道我想要它像(“用户名”),(“用户名”) 但我无法实现它有人可以告诉我如何实现这种值(value)格式

最佳答案

如果问题只是在用户名周围加上引号,答案是替换字符串 inserts = inserts.map {|bar| "(#{bar.to_s})"}.join(",")

inserts = inserts.map {|bar| %Q[("#{bar.to_s}")]}.join(",")

关于mysql - Ruby on Rails 在单个查询中更新多个记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166925/

相关文章:

ruby-on-rails - Rails4 PG hstore 不允许的参数 : data

php - 与 strtotime 作斗争,得到预期参数 2 为长错误

更大查询中的 MySQL COUNT 语法

sql - 检索每个组中的最后一条记录-MySQL

sql - 聚集索引是否比包含包含的非聚集索引更快?

sql - SELECT 语句中带有 if 比较的 TSQL CASE

ruby-on-rails - rake 数据库 :schema:dump doesn't provide data migration info - is there an automated way to get this?

ruby-on-rails - Rails + X-Sendfile 向 Ipad 提供大型视频

mysql - MySQL PBXT与InnoDB

PHP/MYSQL - 如何检测更新前列中的值是否仍然相同(codeigniter)