Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение баз с разных ПК 
:(
    Опции темы
Mechatronic
Дата 5.6.2015, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 28.3.2010

Репутация: нет
Всего: нет



Здравствуйте. Прокомментируйте, пожалуйста, предполагаемое решение, если можно, предложите, как сделать лучше.
Есть такая задача: объединение двух локальных баз данных с двух ПК (Перенос должен быть на USB HDD).
Предполагается сделать так:

1) Снимаем бэкап на ПК1, копируем на HDD.
2) Подключаем HDD к ПК2, создаем новую БД, в нее восстанавливаем бэкап.
3) Запоминаем максимальные значения id по всем таблицам в старой БД.
4) С помощью самописного приложения копируем по одной записи из этой новой базы в существующую базу, редактируя при этом содержимое(id строк в других таблицах).
5) Удаляем новую базу.

Спасибо.
PM MAIL   Вверх
Akina
Дата 5.6.2015, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Цитата(Mechatronic @  5.6.2015,  11:29 Найти цитируемый пост)
4) С помощью самописного приложения копируем по одной записи из этой новой базы в существующую базу, редактируя при этом содержимое(id строк в других таблицах).

Я бы таким приложением выполнил бы прямо на месте, во временной базе, корректировку полей по всем таблицам перенесённой БД, предварительно убрав внешние ключи, индексы (в т.ч. первичный), триггеры и констрейнты и оставив только собственно данные - тогда это один простейший запрос на таблицу (корректировать сразу все требующие корректировки поля, каждое на свою дельту), и выполнится быстро. А потом точно так же, один запрос на таблицу, скопировал бы записи из таблиц временной БД в таблицы основной БД (тут нужно будет правильно выбрать порядок копирования, чтобы не налететь на ограничения FK).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mechatronic
Дата 10.6.2015, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 28.3.2010

Репутация: нет
Всего: нет



Akina, спасибо. Сделал как вы предложили. Дошел до переноса таблиц из временной БД в нашу и не понимаю, как это сделать, если мы устанавливаем соединение с конкретной БД для работы.
PM MAIL   Вверх
Akina
Дата 10.6.2015, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Почитайте ман по секции FROM. Там можно указывать не только имя таблицы, но и схему:
Цитата

The FROM clause can contain the following elements:
table_name
The name (optionally schema-qualified) of an existing table or view.

То есть обращаться к таблицам из другой БД, доступной данному инстансу сервера.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mechatronic
Дата 10.6.2015, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 28.3.2010

Репутация: нет
Всего: нет



Akina , Это связка INSERT и SELECT должна быть?
PM MAIL   Вверх
Akina
Дата 10.6.2015, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Ну если надо выбирать (SELECT) из одной таблицы, чтобы вставить (INSERT) в другую таблицу - то другие варианты как бы отпадают... чего спрашивать-то очевидные вещи?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mechatronic
Дата 10.6.2015, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 28.3.2010

Репутация: нет
Всего: нет



Akina, чтобы убедиться. С БД набегами только приходится встречаться. 
Мог бы наворотить через COPY, STDOUT, STDIN, наверное, еще.
PM MAIL   Вверх
Larry9
Дата 30.10.2017, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 10.8.2010

Репутация: нет
Всего: -1



Handy Backup умеет это частично автоматизировать с помощью инструмента PostgreSQL. Создаёте задачу, запускаемую по подключению HDD, получаете бэкап в виде дамп-файла, дальше уже хоть текстовым редактором ID исправляете, хоть скриптом.

Это сообщение отредактировал(а) Larry9 - 30.10.2017, 11:55
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.1242 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.