从CSV批量更新MySQL数据库

时间:2013-05-11 17:55:41

标签: mysql ruby-on-rails mysql-workbench

我刚刚在我的Rails应用程序中添加了一个使用MySQL DB的新字段。我有一个CSV,其中包含表中已有记录的新字段(名称)的值。

Article (table)
_______________
id | name

CSV的第一个字段是id字段,第二个字段是名称。我想通过根据CSV中的id字段更新名称字段来更新Article表。有人可以帮我写一个MySQL查询吗?

1 个答案:

答案 0 :(得分:1)

CSV.open('file_path.csv', 'r').each do |row|
  article = Article.find_by_id(row[0])

  article.update_attribute(:name, row[1]) if article
end

我使用find_by_id因为如果找不到任何内容它会返回nil,而find会返回异常ActiveRecord :: recordNotFound。