Парсинг данных с таблицы донора.

kimka999

Создатель
Регистрация
21 Мар 2013
Сообщения
41
Реакции
22
Всем привет. возник вопрос.
На одном сервере есть база данных(tehm) в базе есть таблица (users)
На втором сервере есть база (infbdopt) в базе есть таблица (VSRS)
Нужно что бы из базы (infbdopt) из таблицы (VSRS) данные попадали в базу данных (tehm) в таблицу (users). возможно ли это реализовать? если да то дайте пару советов как это сделать.
спасибо.
 

GowarD

Писатель
Регистрация
25 Мар 2017
Сообщения
7
Реакции
0
Создать dblink к базе и использовать его в запросах.
Если это всего две базы тогда создавать в главной базе линк на второстепенную.
Если баз откуда надо собирать информацию много, а главный сервер мощный - тогда лучше создавать линки на главную базу во второстепенных и оттуда передавать данные.
Почему так - если много баз тогда из главной простыми запросами можно собирать данные только последовательно, соответственно долго, а если будут отдавать из РИБ - будут параллельно несколько процессов, что намного быстрее. Но если запись в одну таблицу - надо учесть что она будет блокироваться, если надо будет распишу как все "склеивать".
Если только две то есть линк и тогда просто в запросе использовать его название. Например назвали линк "infbdopt_lnk" - тогда запрос будет: SELECT * FROM VSRS@infbdopt_lnk
Если записей много лучше добавить, если нет поле с датой обновления и выбирать по этому полю только новы или обновленные данные.
Если надо все данные вставлять, например:
INSERT INTO
users (fld1, fld2, fld3)
SELECT
t2.fld1,
t2.fld2,
t2.fld3
FROM
VSRS@infbdopt_lnk t2
WHERE
t2.fld1 > 100;
Если данные надо обновлять - тогда MERGE написать.
 

savicus

Писатель
Регистрация
18 Сен 2018
Сообщения
1
Реакции
0
Доброго дня.
Если не известны типы данных в исходной таблице, нужно сначала информацию о структуре таблицы:
CREATE TABLE VSRS
LIKE users

Либо если нужно просто отзеркалить:
CREATE TABLE VSRS
SELECT * FROM users

Если будете переносить в PHP, сообщите - напишу код, там просто.

Если в среде SQL:
USE tehm;
CREATE TABLE users LIKE infbdopt.VSRS;
INSERT INTO users SELECT * FROM infbdopt.VSRS;
 
Последнее редактирование модератором:
Сверху