|
Модераторы: LSD |
|
Mechatronic |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2010 Репутация: нет Всего: нет |
Здравствуйте. Прокомментируйте, пожалуйста, предполагаемое решение, если можно, предложите, как сделать лучше.
Есть такая задача: объединение двух локальных баз данных с двух ПК (Перенос должен быть на USB HDD). Предполагается сделать так: 1) Снимаем бэкап на ПК1, копируем на HDD. 2) Подключаем HDD к ПК2, создаем новую БД, в нее восстанавливаем бэкап. 3) Запоминаем максимальные значения id по всем таблицам в старой БД. 4) С помощью самописного приложения копируем по одной записи из этой новой базы в существующую базу, редактируя при этом содержимое(id строк в других таблицах). 5) Удаляем новую базу. Спасибо. |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Я бы таким приложением выполнил бы прямо на месте, во временной базе, корректировку полей по всем таблицам перенесённой БД, предварительно убрав внешние ключи, индексы (в т.ч. первичный), триггеры и констрейнты и оставив только собственно данные - тогда это один простейший запрос на таблицу (корректировать сразу все требующие корректировки поля, каждое на свою дельту), и выполнится быстро. А потом точно так же, один запрос на таблицу, скопировал бы записи из таблиц временной БД в таблицы основной БД (тут нужно будет правильно выбрать порядок копирования, чтобы не налететь на ограничения FK). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Mechatronic |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2010 Репутация: нет Всего: нет |
Akina, спасибо. Сделал как вы предложили. Дошел до переноса таблиц из временной БД в нашу и не понимаю, как это сделать, если мы устанавливаем соединение с конкретной БД для работы.
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Почитайте ман по секции FROM. Там можно указывать не только имя таблицы, но и схему:
То есть обращаться к таблицам из другой БД, доступной данному инстансу сервера. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Mechatronic |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2010 Репутация: нет Всего: нет |
Akina , Это связка INSERT и SELECT должна быть?
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Ну если надо выбирать (SELECT) из одной таблицы, чтобы вставить (INSERT) в другую таблицу - то другие варианты как бы отпадают... чего спрашивать-то очевидные вещи?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Mechatronic |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 73 Регистрация: 28.3.2010 Репутация: нет Всего: нет |
Akina, чтобы убедиться. С БД набегами только приходится встречаться.
Мог бы наворотить через COPY, STDOUT, STDIN, наверное, еще. |
|||
|
||||
Larry9 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.8.2010 Репутация: нет Всего: -1 |
Handy Backup умеет это частично автоматизировать с помощью инструмента PostgreSQL. Создаёте задачу, запускаемую по подключению HDD, получаете бэкап в виде дамп-файла, дальше уже хоть текстовым редактором ID исправляете, хоть скриптом.
Это сообщение отредактировал(а) Larry9 - 30.10.2017, 11:55 |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PostgreSQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |