Обновите таблицу (Database1) из той же таблицы (Database2) в Postgresql - PullRequest
0 голосов
/ 26 июня 2018

У меня есть две базы данных со схожими данными, но я хочу обновить изменения sample_table из Database2 в sample_table базы данных1 .

Пример:

Database1 [ 1010 * sample_table *]

ID     Reference      Name
0001   Ref0001        Test1
0002   Ref0002        Test2

database2 [ sample_table ] - с изменениями

ID     Reference      Name
0001   Ref0001        Name1
0002   Ref0002        Name2

В sample_table базы данных2 я изменил данные в поле Имя и хочу применить изменения в sample_table в базе данных1. Какой SQL-запрос выполнить для этого? Я использую pgAdminIII и pgAdmin4. (обе базы данных находятся на одном сервере)

Если у вас есть какие-либо вопросы, прокомментируйте ниже.

1 Ответ

0 голосов
/ 27 июня 2018

На этот вопрос нет однозначного ответа, его можно решить многими способами. Давайте перечислим несколько:

  • Создайте простой дамп sql для Database2, измените имена таблиц так, чтобы они отличались от таблиц Database1. Выполните измененный дамп sql в Database1, чтобы все данные были в одной базе данных. Выполнить обновление из импортированных таблиц в исходные, соединяя / сопоставляя кортежи по идентификатору.

  • Как и предлагалось: создайте оболочку внешних данных типа postgres_fdw как , описанную , чтобы использовать ее для обновления исходных таблиц из внешнего источника данных непосредственно в postgres.

  • Создание простого внешнего скрипта, который подключается к обеим базам данных для чтения из одной и обновления в другую.

  • Используйте некую программную систему (ETL или Replication), чтобы иметь возможность обновлять базы данных. Что-то вроде Bucardo или Kettle (интеграция данных Pentaho) может помочь.

Все зависит от того, насколько сложное или простое решение вам нужно, одно или несколько применений или долгосрочное использование

...