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

Тема в разделе "Базы данных", создана пользователем kimka999, 1 июл 2019.

Модераторы: latteo
  1. kimka999

    kimka999 Создатель

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

    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 написать.
     
  3. savicus

    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;
     
    Последнее редактирование модератором: 6 ноя 2019