(Date.today - 1.day).to_datetime, :name => "O'Connor" }]) 根据-6ren">
gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:42:10 25 4
gpt4 key购买 nike

用这样的简单模型

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com