2013-03-22 2 views
1

У меня есть две машины для Windows (PC1 & PC2) с PostgreSQL в обоих. В PC1 У меня есть таблица:Объединение двух похожих таблиц Postgresql, расположенных на двух разных машинах

enter image description here

И в PC2 У меня такая же таблица со следующими записями:

enter image description here

Я хочу, чтобы объединить обе таблицы и поместить их в ПК1 к быть как (порядок не важен):

enter image description here

Как сделать что? Я использую PostgreSQL 9.2 & pgAdminIII. Я предпочитаю, если возможно, передавать данные с помощью USB-накопителя, а не сети.

ответ

1

Это то, что я сделал бы:

PC1-> pgadmin-> yourtablename -> правая кнопка мыши -> Резервное копирование

Параметры файла: Формат: простой, кодирование: your_ecnoding

дамп options # 1: только данные, используйте вставки столбцов.

это создаст запрос sql. заменить yourtablename с yourtablename2 и его Выполнение выражений PC2

удалить дубликаты записей и добавить данные:

delete from yourtablename2 where id in (select id from yourtablename) 

insert into yourtablename 
select * from yourtablename2 

drop table yourtablename2 
1

Вы можете просто сбросить данные из:

pg_dump --data-only dbname > outfile.sql 

Это даст вам файл всех данных. Большая проблема, если вам придется беспокоиться о дубликатах при вставке этих данных обратно в другой узел.

Это, как вы бы импортировать данные:

psql --set ON_ERROR_STOP=on dbname < outfile.sql 

Другим решением для вас, если вы по-прежнему нуждаются в этих двух баз данных, синхронизированных является использование некоторых стратегий репликации в PostgreSQL. http://www.postgresql.org/docs/9.2/static/warm-standby.html#STREAMING-REPLICATION

Смежные вопросы