2015-10-22 6 views
0

У меня есть таблица в моем db, называемая «1_users». В этой таблице есть столбец с именем «origin». Я импортировал другую таблицу в тот же db, называемый «old_users» с почти идентичным макетом (более старая версия). В старой таблице также есть столбец с именем «origin».MySQL Workbench заменяет данные в столбце

Теперь мне нужно заменить данные в столбце «origin» в «1_users» данными в столбце «origin» в «old_users». Обе таблицы имеют столбец «id», который идентичен и может служить ссылкой.

Я являюсь абсолютным новичком mysql и не знаю sql-синтаксиса, но могу быстро научиться, если вы можете показать мне основную идею. Я работаю в workbench mysql.

Спасибо заранее, все, что помогает

ответ

0

Вы можете сделать это путем объединения обеих таблиц с колонкой идентификатором и обновление координат в 1_user от old_users.

update 1_users 
inner join old_users on 1_users.id=old_users.id 
set 1_users.origin=old_users.origin; 
+0

спасибо! Пришлось установить верстак в небезопасный режим, но потом это сработало. – prokops

0

Так что вам нужно, чтобы заменить данные таблицы «1_users» с данными в «old_users», можно укоротить «1_users» данные и копировать вставить все записи «old_users» в нем данных (он выиграл» неважно, имеет ли ваше поле идентификатора одинаковые значения в обеих таблицах, но если у вас есть дополнительные поля в таблице «1_users», которые вы хотите сохранить, то усечение не следует соблюдать).

Если в таблице «1_users» есть дополнительные поля столбцов, которые вы хотите сохранить, установите поле «origin» в таблице «1_users» в NULL, а затем обновите эту таблицу со значениями полей «origin_users» «origin».

0

Вы можете обновить новую таблицу «1_users» из старой таблицы «old_users», как это:

UPDATE 1_users 
SET 1_users.origin = (SELECT origin FROM old_users WHERE ID = 1_users.ID) 

или, если только только два столбца, вы можете удалить данные в «1_users», где ID в идентификатору «old_users», затем INSERT данные от «old_users» до «1_users» (но не рекомендуется)

0

Предполагая, что таблица «1_users» уже имеет некоторые данные в поле «origin», и вы хотите выполнить операцию замены на копируя данные из того же поля «old_users», сравнивая поля «id» обеих таблиц, вы можете сделать следующее:

UPDATE 1_users 
SET origin = old_users.origin 
FROM old_users 
WHERE old_users.id = 1_users.id; 

Если целевая таблица пуста, то вы должны использовать INSERT вместо:

INSERT INTO 1_users (origin) 
SELECT origin FROM old_users; 

Если все поля «1_users» и «old_users» являются одинаковыми и данные, необходимые в «1_users» также совпадает с именем «old_users», вы можете просто отбросить таблицу «1_users» и переименовать «old_users» в «1_users».

DROP TABLE 1_users; 
RENAME TABLE old_users TO 1_users;