2011-01-22 64 views
6

我必須將BLOB字段從一個表複製到另一個表中,我想使用INSERT-SELECT查詢來實現此目的。我可以使用Rails API執行INSERT-SELECT操作嗎?

INSERT INTO target_table (key, data, comment) 
    SELECT 'my key', data, 'some comment' FROM source_table 

這可以通過Rails API完成嗎?

當然,我總是可以使用ActiveRecord::Base.connection發送本地查詢到數據庫,但我希望找到一個「Rails方式」來做到這一點。 (其中一個並不涉及實際將數據加載到我的Rails應用程序中)

+0

對於我們這些不擅長瀏覽Rails文檔的人來說,在這裏有沒有ActiveRecord :: Base.connection API調用的例子是沒有意義的?我發現這個非顯而易見的東西可以從文檔中找出來...... – Philip 2016-01-13 01:34:55

回答

3

這是一個典型的場景,其中使用SQL直接使用ActiveRecord::Base.connection是合理的和敏感的。正如你所描述的那樣,不可能有任何軌道。即使有一個,它也必須將其加載到內存中,並將其插入到涉及兩個模型的目標表中;這是瘋狂。

+3

我傾向於同意「典型場景」聲明,但爲什麼你認爲不可能有任何方式?只要想一想Arel可以在不將所有內容加載到內存的情況下完成什麼樣的功能。 – 2011-02-02 19:57:05

相關問題