sql - Rails3:具有散列替换(如.where())的SQL执行

标签 sql ruby-on-rails ruby-on-rails-3 activerecord

用这样的简单模型

class Model < ActiveRecord::Base
   # ...
end

我们可以这样查询
Model.where(["name = :name and updated_at >= :D", \
  { :D => (Date.today - 1.day).to_datetime, :name => "O'Connor" }])

根据基础数据库引擎,使用适当的转义将哈希值替换为最终SQL语句的位置。

我想知道类似的SQL执行功能,例如:
ActiveRecord::Base.connection.execute( \
    ["update models set name = :name, hired_at = :D where id = :id;"], \
    { :id => 73465, :D => DateTime.now, :name => "O'My God" }] \
  ) # THIS CODE IS A FANTASY. NOT WORKING.

(请不要通过加载Model对象,修改然后保存来解决该示例!该示例仅是我想拥有/知道的功能的说明。请专注于主题!)

最初的问题是我想将大量(数千行)数据插入数据库。我想使用ActiveRecord框架的SQL抽象的某些功能,但我不想使用基于ActiveRecord::Base的模型对象,因为它们实在太慢了! (每秒8查询我当前的问题。)

最佳答案

query = ActiveRecord::Base.connection.raw_connection.prepare("INSERT INTO users (name) VALUES(:name)")
query.execute(:name => 'test_name')
query.close

关于sql - Rails3:具有散列替换(如.where())的SQL执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976708/

相关文章:

sql - 将多个选择查询合并为一个以避免多次传递一个巨大的表

mysql - 在 MySQL 中对多个数据运行相同 SELECT 的最简单方法

ruby-on-rails - Jira API - 添加附件

ruby-on-rails - 使用集合向 Formtastic 单选按钮添加背景图像或图像标签

ruby-on-rails - 如何让 Rails 3 本地化我的日期格式?

php - 将多个var值插入到同一个mysql表中

c# - SqlConnection 命令在删除时不会引发异常

javascript - 使用 Backbone 上传文件

ruby - 使用非单词字符正则表达式拆分字符串时的奇怪行为

ruby-on-rails-3 - Heroku:我有一个请求需要超过 30 秒并且中断