Лучший способ импортировать (объединить) -экспорт базы данных Java db - PullRequest
2 голосов
/ 11 ноября 2008

Допустим, у меня есть два компьютера. PC-a и PC-b, на обоих из которых установлено одно и то же приложение с поддержкой java db. Я хочу время от времени копировать данные из базы данных на ПК-а в базу данных на ПК -b и наоборот, чтобы два компьютера постоянно имели одни и те же данные. Есть ли уже реализованный API на уровне базы данных для этого (например, 1.export-backup database с ПК-a 2. импорт-объединение баз данных на ПК-b), или я должен сделать это на уровне SQL (вручную)?

Ответы [ 4 ]

2 голосов
/ 17 ноября 2008

Как вы упоминаете в комментариях, что вы хотите "объединить" базы данных, это звучит так, как будто вам нужно написать собственный код, чтобы сделать это, так как предположительно могут быть конфликты - один и тот же ключ в обоих, но с разными деталями против это, например.

1 голос
/ 05 августа 2009

Короче говоря: вы не можете сделать это без какой-либо работы на вашей стороне. SalesLogix исправил эту проблему, предоставив всем код сайта, и вот как выглядит ваша таблица:

Customer: 
   SiteCode varchar,
   CustomerID varchar, 
   .... 
   primary key(siteCode, CustomerID) 

Итак, теперь вы берете свои базы данных и сопоставляете каждую запись по первичному ключу. Там, где есть конфликты, вы должны будете предоставить конечному пользователю отчет о том, какие данные были другими.

Скажите machine1:

   SiteCode|CustomerID|CustName     |phone         |email 
 1 XXX     |0001      |Customer1    |555.555.1212  |darth@example.com

и на машине2:

   SiteCode|CustomerID|CustName     |phone         |email 
 2 XXY     |0001      |customer2    |555.555.1213  |darth@nowhere.com 
 3 XXX     |0001      |customer1    |555.555.1212  |darth@nowhere.com

При выполнении разрешения:

  • Записи 1 и 3 находятся в конфликте, поскольку ПК соответствует, но данные не совпадают (адрес электронной почты отличается).
  • Запись 2 уникальна и может свободно существовать в обеих базах данных.

Существует NO способ сделать это автоматически без ошибок, повреждения данных или проблем со ссылочной целостностью.

1 голос
/ 11 ноября 2008

Почему у вас нет базы данных на одном компьютере? и иметь данные запроса всех других ПК с хост-компьютера

1 голос
/ 11 ноября 2008

Полагаю, вы используете Java DB (он же Derby) - в этом случае, если вы просто не можете использовать один экземпляр, вы можете сделать резервную копию / восстановить .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...