我可以使用Rails API执行INSERT-SELECT操作吗?

Dan*_*ski 8 ruby-on-rails ruby-on-rails-3

我必须将BLOB字段从一个表复制到另一个表中,并且我想使用INSERT-SELECT查询来实现此目的.

INSERT INTO target_table (key, data, comment)
    SELECT 'my key', data, 'some comment' FROM source_table
Run Code Online (Sandbox Code Playgroud)

可以使用Rails API完成吗?

当然,我总是可以使用ActiveRecord::Base.connection本机查询发送到数据库,但我希望找到一个"Rails方式"来做到这一点.(不涉及在我的Rails应用程序中实际加载数据的一个)

kar*_*iks 4

这是一个典型的场景,直接使用SQLActiveRecord::Base.connection是有意义和敏感的。正如您所描述的那样,不可能有任何轨道方式。即使有,也得加载到内存中,插入到涉及两个模型的目标表中;这太疯狂了。

  • 我倾向于同意“典型场景”的说法,但为什么你认为不可能有任何办法呢?只要考虑一下 Arel 无需将所有内容都加载到内存中即可完成哪些令人惊奇的事情。 (5认同)