我有一个parents表,其中有family_situations和admin_notes字段。上传CSV时,由于错误,我在family_situations列中上传了所有admin_notes数据。有什么办法可以将family_situations中的所有数据移至admin_notes。请帮忙。
parent.rb
def self.import(file)
CSV.foreach(file.path, headers:true) do |row|
parent = Parent.find_or_update_or_create_by(
parent_1_firstname: row['parent_1_firstname'],
parent_1_lastname: row['parent_1_lastname'],
family_situation: row['family_situation'],
)
end
模式
create_table "parents", force: :cascade do |t|
t.string "parent_1_firstname"
t.string "parent_1_lastname"
t.text "family_situation"
t.string "admin_notes"
end
当我在Rails控制台中尝试以下代码时,它会引发错误的未定义方法SET
UPDATE Parent SET admin_notes=family_situation
答案 0 :(得分:0)
UPDATE new_table SET columnA = (SELECT columnB FROM old_table
WHERE old_table.key_column = new_table.key_column);
如果您需要基于另一个表中的值更新一个表中的列,那么您将需要找出哪个列将行从一个表映射到另一个表。在下面的示例中,我将此列称为key_column。 UPDATE命令如下所示:
UPDATE new_table SET columnA = (SELECT columnB FROM old_table
WHERE old_table.key_column = new_table.key_column);
没有参考键,或者条件以这种方式使用
UPDATE new_table SET columnA = (SELECT columnB FROM old_table
WHERE old_table.autoserial < highest number on new table i.e : 100000);
答案 1 :(得分:0)
Parent.update_all"admin_notes=family_situation"