代码之家  ›  专栏  ›  技术社区  ›  krunal shah

如何通过单列更新复制多行

  •  0
  • krunal shah  · 技术社区  · 14 年前

    我想用单列更新复制表中的所有行。

    例子。

    表County有1000行,我想用单列更新复制所有行。

    正确的方法是什么?

    3 回复  |  直到 9 年前
        1
  •  1
  •   Community dbr    7 年前

    This question 描述如何使用 clone 复制你的记录。

    假设1000条记录已经在一个可枚举的调用中 counties 最后我们

    counties.each { |county|  
        county_copy = county.clone
        county_copy.col3 = update_function(county_copy.col3)
        county_copy.save
    }
    
        2
  •  0
  •   SamStephens SQL.injection    14 年前

    如果我正确理解你,我会做一些像

    INSERT INTO NewTable (Col1, Col2, Col3)
    SELECT Col1, Col2, UpdateFunction(Col3)
    FROM County
    

    其中col3是要更新的列,updateFunction是要用于更新列的函数。

    编辑:当然这是SQL,而不是Rails-我没有仔细看问题的标签:-)

        3
  •  0
  •   Santanu    9 年前

    @Krunalshah您可以构建一个哈希数组并将该数组传递给

    Country.create(array)
    

    尽管它将执行多个插入查询。

    其他选项使用

    connection.execute(<<-SQL)
        insert into country1 (col1, col2) 
        select col1, col2 from countries
      SQL