SQL

Как вставить данные из одной БД в другую?

Есть база данных test1. В ней есть таблица objects. В таблице есть столбцы ID,NAME
И есть база данных test2. В ней есть таблица t2021. В таблице есть столбцы ID_object,Name
Мне нужно в столбец t2021.Name записать данные из столбца objects.NAME сопоставляя objects.ID и t2021.ID_object.
Кто нибудь знает как это сделать?
самый простой способ прикрутить вашу вторую таблицу в качестве временной в результирующую БД и уже там перенести данные в соответствии с сопоставлением...
ДП
Денис Полев
54 168
Лучший ответ
Владимир Иванов Да пытался. Видать версия SQL не позволяет.
UPDATE t1
SET t1.Name=obj.NAME
FROM t2021 AS t1
INNER JOIN test1.objects AS obj
ON t1.ID_Object = obj.ID
WHERE t1.ID_Object = obj.ID
1. настраиваешь линк с одной базы на другую (как это сделать смотри документацию на свою СУБД) и пишешь:
select t1.NAME,t2.ID_object from objects@test1 t1 left join t2021@test2 t2 on t1.ID = t2.ID_object
2. делаешь дамп одной таблицы из одной БД и импортируешь его в другую БД. как это сделать смотри документацию, ибо есть варианты для разных СУБД. после этого делаешь тот же join, что выше, только без @.

если новые значения нужно записать, вместо select делаешь аналогичный update.
Владимир Иванов Так базы на одном сервере... Они и без линка существуют. И СУБД там особо нет. Там просто SQL и консоль для общения с ним.
можно проще выгружаешь 1ю бд и загружаешь нужны таблицы в вторую, они все равно будут по разному называться

Дальше пищишь цикл отгружаешь 1ю бд в массив и во вторую по одному по ад проверку делаешь, работать может долго зависит от количество записей в 1й и 2й таблице если это разово как костыль пойдет.

Другой способ загружаешь обе таблицы в два разных массива и делаешь сравнения по ад, и дальше проверяешь на пересечения одной командой в пхп, потом все ад что пересекаются проходишь по нужному массиву и дописываешь имена из 2го массива.

Дальше формируешь запрос в бд по абдейту. Либо когда уверен во всем зануляеш таблицу и загоняешь массив измененный а бд целиком, что бы быть уверенным что не чего лишнего не убьешь, создаешь 3ю таблицу и туда выгружаешь, если все ок, 1 и 2 удаляешь, а 3ю переименовываешь на нужную.
Владимир Иванов Не. Не вариант.