Запрос на перемещение данных из одного значения столбца в таблице в другое - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть родительская таблица, в которой есть поля family_situations и admin_notes. По ошибке при загрузке CSV я загрузил все данные admin_notes в столбец family_situations. Есть ли способ, которым я могу переместить все данные в 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

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018
Parent.update_all"admin_notes=family_situation"
0 голосов
/ 04 сентября 2018
 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...